forked from all_user/stat_center
31 lines
553 B
Go
31 lines
553 B
Go
package file
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"mime/multipart"
|
|
"stat/common/proxy"
|
|
)
|
|
|
|
type FileObject struct {
|
|
File *multipart.FileHeader
|
|
}
|
|
|
|
// PutObject 上传文件
|
|
func PutObject(ctx context.Context, apiUrl string, fo *FileObject) (urlstr string, err error) {
|
|
if fo.File == nil {
|
|
err = errors.New("invalid file")
|
|
return
|
|
}
|
|
|
|
file, err := fo.File.Open()
|
|
if err != nil {
|
|
err = errors.New(fmt.Sprintf("invalid file %+v", err))
|
|
return
|
|
}
|
|
defer file.Close()
|
|
urlstr, err = proxy.PutObject(ctx, apiUrl, fo.File.Filename, file)
|
|
return
|
|
}
|