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函數即可。
您可以通過其屬性過濾零件,例如part的內容類型。解析器可以檢查零件的字節並使用檢查員檢測零件的類型。
// 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" ))現在,解析器將檢查每個部分,它將僅從解析功能中返回JPEG。您可以自己進行檢查員和過濾。
歡迎拉動請求。請先開設一個問題,討論您想更改的內容。
請確保及時更新測試。
麻省理工學院