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 ()
}他のHTTPサーバーライブラリでBarakaを使用して、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" ))ここで、パーサーは各部品を検査し、パース関数からJPEGの部品を返すだけです。独自の検査官とフィルターを作成できます。
プルリクエストは大歓迎です。最初に問題を開いて、何を変えたいかを議論してください。
必要に応じて、必ずテストを更新してください。
mit