baraka
v2.0.3 release
▄▄▄▄ ▄▄▄ ██▀███ ▄▄▄ ██
▓█████▄ ▒████▄ ▓██ ▒ ██▒▒████▄
▒██▒ ▄██▒██ ▀█▄ ▓██ ░▄█ ▒▒██ ▀█▄ ▓███▄░▒██
▒██░█▀ ░██▄▄▄▄██ ▒██▀▀█▄ ░██▄▄▄▄██ ▓██
░▓█ ▀█▓ ▓█ ▓██▒░██▓ ▒██▒ ▓█ ▓██▒▒██▒ █▄▓█
░▒▓███▀▒ ▒▒ ▓▒█░░ ▒▓ ░▒▓░ ▒▒ ▓▒█░▒ ▒▒ ▓▒▒▒
▒░▒ ░ ▒ ▒▒ ░ ░ ▒░ ▒░ ▒ ░░ ░▒ ░▒ ▒░ ▒▒ ░
░ ░ ░ ▒ ░░ ░ ▒ ░ ░░ ░ ░ ░
░ ░ ░ ░ ░ ░░ ░ ░
░
أداة للتعامل مع تحميل الملفات لخوادم HTTP
يجعل من السهل إجراء عمليات مع ملفات من طلب HTTP.
go get github.com/xis/baraka/v2 func main () {
// create a parser
parser := baraka . NewParser (baraka. ParserOptions {
MaxFileSize : 5 << 20 ,
MaxFileCount : 5 ,
MaxParseCount : 5 ,
})
store := baraka . NewFilesystemStorage ( "./files" )
router := gin . Default ()
router . POST ( "/upload" , func ( c * gin. Context ) {
// parse
request , err := parser . Parse ( c . Request )
if err != nil {
fmt . Println ( err )
}
// get the form
images , err := request . GetForm ( "images" )
if err != nil {
fmt . Println ( err )
}
// save
for key , image := range images {
err = store . Save ( "images" , "image_" + strconv . Itoa ( key ), image )
if err != nil {
fmt . Println ( err )
}
}
})
router . Run ()
}يمكنك استخدام Baraka مع مكتبات خادم HTTP الأخرى ، ما عليك سوى تمرير http.request إلى وظيفة parser.parse.
يمكنك تصفية الأجزاء حسب خصائصها ، مثل نوع محتوى الجزء. يمكن أن يبحث المحللون من بايت الجزء واكتشاف نوع الجزء مع المفتش.
// create a parser
parser := baraka . NewParser (baraka. ParserOptions {
MaxFileSize : 5 << 20 ,
MaxFileCount : 5 ,
MaxParseCount : 5 ,
})
// give parser an inspector
parser . SetInspector ( baraka . NewDefaultInspector ( 512 ))
// give parser a filter
parser . SetFilter ( baraka . NewExtensionFilter ( ".jpg" ))الآن سوف يقوم Parser بفحص كل جزء وسيعيد JPEG فقط من وظيفة Parse. يمكنك جعل المفتش الخاص بك والتصفية.
طلبات السحب موضع ترحيب. يرجى فتح مشكلة أولاً لمناقشة ما ترغب في تغييره.
يرجى التأكد من تحديث الاختبارات حسب الاقتضاء.
معهد ماساتشوستس للتكنولوجيا