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" ))Теперь картинг будет осматривать каждую часть, и он просто вернет JPEG с функции Parse. Вы можете сделать свой собственный инспектор и фильтр.
Приглашаются запросы. Пожалуйста, откройте проблему сначала, чтобы обсудить, что вы хотели бы изменить.
Пожалуйста, обязательно обновите тесты по мере необходимости.
Грань