From cf0e2dc94c8c43c3cf929d56787e2a7acfbcbfab Mon Sep 17 00:00:00 2001 From: coward <3191605956@qq.com> Date: Tue, 16 Mar 2021 10:30:34 +0800 Subject: [PATCH] =?UTF-8?q?'=E5=85=BC=E5=AE=B9[]byte=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + file.go | 13 +++++++++++++ oss_test.go | 26 ++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/README.md b/README.md index 72ad6c2..53d7b73 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ 对阿里云oss-golang sdk 进行上传、删除的简单封装,便于使用 上传使用字节流,内自带 *os.File | *multipart.FileHeader 文件类型转字节流, 以及使用字符串路径 例如:./test.png 。测试案例oss_test.go中有不同操作的案例 +新版兼容文件[]byte化上传 #install go get github.com/cowardmrx/go_aliyun_oss diff --git a/file.go b/file.go index d1de0fc..890046f 100644 --- a/file.go +++ b/file.go @@ -39,6 +39,8 @@ func (ossFile *OssFile) FileTypeTransForm() (*OssFile,error) { _,ossFile.FileOldName = filepath.Split(ossFile.File.(*os.File).Name()) + break + case *multipart.FileHeader: fileResources,err := ossFile.File.(*multipart.FileHeader).Open() @@ -57,6 +59,8 @@ func (ossFile *OssFile) FileTypeTransForm() (*OssFile,error) { ossFile.FileOldName = ossFile.File.(*multipart.FileHeader).Filename + break + case string: newFile,err := os.Open(ossFile.File.(string)) @@ -70,6 +74,15 @@ func (ossFile *OssFile) FileTypeTransForm() (*OssFile,error) { _,ossFile.FileOldName = filepath.Split(newFile.Name()) + break + + // 支持[]byte数组传递 因为无法解析文件类型 默认直接给出文件类型为.jpeg + case []byte: + ossFile.FileByte = ossFile.File.([]byte) + ossFile.FileOldName = uuid.NewV4().String() + ".jpeg" + + break + default: fmt.Println(reflect.TypeOf(ossFile.File)) panic("file type is not support" ) diff --git a/oss_test.go b/oss_test.go index 63f8362..b21e995 100644 --- a/oss_test.go +++ b/oss_test.go @@ -1,7 +1,9 @@ package go_aliyun_oss import ( + "encoding/base64" "fmt" + "io/ioutil" "testing" ) @@ -20,6 +22,30 @@ func TestPut(t *testing.T) { fmt.Println(uri) } +func TestPutBase64(t *testing.T) { + ossConfig := &AliOssConfig{ + EndPoint: "oss-cn-shenzhen.aliyuncs.com", + AccessKeyId: "LTAI4FwmLMvboJf97riakG9e", + AccessKeySecret: "1dclKyqjiI1SDfr30IDvO0eZmcJLo3", + BucketName: "test-myself-bucket", + } + + client := ossConfig.CreateOssConnect() + + // 读取base + file,_ := ioutil.ReadFile("./File/3HaqWaOzJWD86DDvZD9Pmn9VUEOBOBbuWackGOXb (2).jpeg") + + + fileStr := base64.StdEncoding.EncodeToString(file) + + bat,_ := base64.StdEncoding.DecodeString(fileStr) + + + uri := client.Put("logo/",bat) + // + fmt.Println(uri) +} + func TestExists(t *testing.T) { ossConfig := &AliOssConfig{ EndPoint: "oss-cn-shenzhen.aliyuncs.com",