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。您可以自己进行检查员和过滤。
欢迎拉动请求。请先开设一个问题,讨论您想更改的内容。
请确保及时更新测试。
麻省理工学院