4 Commits

Author SHA1 Message Date
coward
c00770cab3 :arrow_up:升级了oss依赖 2022-09-02 10:07:54 +08:00
coward
386d2db45e '修复冲突' 2021-06-02 19:59:59 +08:00
coward
20fae36533 '修改了方法注释,新增了一个获取临时地址的方法' 2021-06-02 19:57:25 +08:00
coward
605a9f829e '修复顺序' 2021-04-07 18:13:24 +08:00
7 changed files with 77 additions and 41 deletions

View File

@@ -44,6 +44,4 @@ go get github.com/cowardmrx/go_aliyun_oss
})
fmt.Println(isSuccess)
#详细使用方法请参照oss_test.go文件中的示例

View File

@@ -24,7 +24,7 @@ type OssFileInterface interface {
GetFileType() *OssFile
}
// file type transform
// FileTypeTransForm file type transform
//@title 文件类型转换
func (ossFile *OssFile) FileTypeTransForm() (*OssFile,error) {
var err error
@@ -100,7 +100,7 @@ func (ossFile *OssFile) FileTypeTransForm() (*OssFile,error) {
return ossFile,nil
}
//split file type and generate file name
// GetFileType split file type and generate file name
//截取文件类型
func (ossFile *OssFile) GetFileType() *OssFile {

2
go.mod
View File

@@ -3,7 +3,7 @@ module github.com/cowardmrx/go_aliyun_oss
go 1.15
require (
github.com/aliyun/aliyun-oss-go-sdk v2.1.5+incompatible
github.com/aliyun/aliyun-oss-go-sdk v2.2.5+incompatible
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
github.com/satori/go.uuid v1.2.0
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect

2
go.sum
View File

@@ -1,5 +1,7 @@
github.com/aliyun/aliyun-oss-go-sdk v2.1.5+incompatible h1:v5yDfjkRY/kOxu05gkh0/D/2wYxbTFCoTr3JqFI0FLE=
github.com/aliyun/aliyun-oss-go-sdk v2.1.5+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/aliyun/aliyun-oss-go-sdk v2.2.5+incompatible h1:QoRMR0TCctLDqBCMyOu1eXdZyMw3F7uGA9qPn2J4+R8=
github.com/aliyun/aliyun-oss-go-sdk v2.2.5+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=

View File

@@ -20,7 +20,7 @@ type AliOssConfigInterface interface {
GetAccessibleUrl() string
}
//check AliOssConfig value is exists
// CheckConfig check AliOssConfig value is exists
func (coon *AliOssConfig) CheckConfig() {
//check endPoint
if coon.EndPoint == "" || len(coon.EndPoint) <= 0 {
@@ -49,7 +49,7 @@ func (coon *AliOssConfig) CheckConfig() {
}
//en: create oss connect client
// CreateOssConnect en: create oss connect client
//创建阿里云oss 链接客户端
func (coon *AliOssConfig) CreateOssConnect() *AliOssClient {
//config check
@@ -82,7 +82,7 @@ func (coon *AliOssConfig) CreateOssConnect() *AliOssClient {
}
}
//get oss accessible url
// GetAccessibleUrl get oss accessible url
//拼接阿里云oss可访问地址
func (coon *AliOssConfig) GetAccessibleUrl() string {
var domain string

View File

@@ -11,18 +11,18 @@ type AliOssClient struct {
Client *oss.Bucket
}
type OssResponse struct {
type ossResponse struct {
Host string
LongPath string
ShortPath string
FileName string
Host string
}
//推送文件到oss
// Put 推送文件到oss
//params: ossDir string `oss dir [要推送到的oss目录]` example: test/20201121/
//params: file interface `upload file resource [文件资源]`
//return string `oss file accessible uri [可访问地址]`
func (client *AliOssClient) Put(ossDir string, file interface{},fileType string) *OssResponse {
func (client *AliOssClient) Put(ossDir string, file interface{},fileType string) *ossResponse {
//file to []byte
//文件转字节流
uploadFile := &OssFile{
@@ -36,6 +36,7 @@ func (client *AliOssClient) Put(ossDir string, file interface{},fileType string)
panic("transfer file failed" + err.Error())
}
// 最终的oss名称
var ossFileName string
//ossPath = oss dir + upload file name
@@ -60,7 +61,7 @@ func (client *AliOssClient) Put(ossDir string, file interface{},fileType string)
panic("put file to oss failed:" + err.Error())
}
return &OssResponse{
return &ossResponse{
Host: client.Domain,
LongPath: client.Domain + "/" + ossPath,
ShortPath: ossPath,
@@ -68,7 +69,7 @@ func (client *AliOssClient) Put(ossDir string, file interface{},fileType string)
}
}
//校验文件是否已经存在
// HasExists 校验文件是否已经存在
//check file already exists in oss server
//params: ossFilePath string `file oss path [文件的oss的路径]`
func (client *AliOssClient) HasExists(ossFilePath string) bool {
@@ -83,7 +84,7 @@ func (client *AliOssClient) HasExists(ossFilePath string) bool {
return isExists
}
//删除文件-单文件删除
// Delete 删除文件-单文件删除
//delete one file in oss
//params ossPath string `file oss path [文件的oss路径]`
//return bool
@@ -99,7 +100,7 @@ func (client *AliOssClient) Delete(ossFilePath string) bool {
return true
}
//删除文件-多文件删除
// DeleteMore 删除文件-多文件删除
//delete more file in oss
//params ossPath []string `file oss path array [文件的oss路径数组]`
//return bool
@@ -113,3 +114,26 @@ func (client *AliOssClient) DeleteMore(ossFilePath []string) bool {
return true
}
// GetTemporaryUrl 获取文件临时地址
// path string 文件路径
// expireInSecond int64 多久后过期 单位: 秒,默认 60
func (client *AliOssClient) GetTemporaryUrl(path string,expireInSecond int64) string {
var expireTime int64
if expireInSecond <= 0 {
expireTime = 60
} else {
expireTime = expireInSecond
}
signUrl,err := client.Client.SignURL(path,oss.HTTPGet,expireTime)
if err != nil {
panic("generate sign url failed:" + err.Error())
}
return signUrl
}

View File

@@ -17,7 +17,7 @@ func TestPut(t *testing.T) {
client := ossConfig.CreateOssConnect()
uri := client.Put("logo/","./File/3HaqWaOzJWD86DDvZD9Pmn9VUEOBOBbuWackGOXb (2).jpeg",".png")
uri := client.Put("logo/", "./File/3HaqWaOzJWD86DDvZD9Pmn9VUEOBOBbuWackGOXb (2).jpeg", ".png")
fmt.Println(uri)
}
@@ -33,15 +33,13 @@ func TestPutBase64(t *testing.T) {
client := ossConfig.CreateOssConnect()
// 读取base
file,_ := ioutil.ReadFile("./File/3HaqWaOzJWD86DDvZD9Pmn9VUEOBOBbuWackGOXb (2).jpeg")
file, _ := ioutil.ReadFile("./File/3HaqWaOzJWD86DDvZD9Pmn9VUEOBOBbuWackGOXb (2).jpeg")
fileStr := base64.StdEncoding.EncodeToString(file)
bat,_ := base64.StdEncoding.DecodeString(fileStr)
bat, _ := base64.StdEncoding.DecodeString(fileStr)
uri := client.Put("logo/",bat,".png")
uri := client.Put("logo/", bat, ".png")
//
fmt.Println(uri)
}
@@ -94,3 +92,17 @@ func TestAliOssClient_DeleteMore(t *testing.T) {
fmt.Println(deleteRes)
}
func TestAliOssClient_GetTemporaryUrl(t *testing.T) {
ossConfig := &AliOssConfig{
EndPoint: "https://oss-cn-hangzhou.aliyuncs.com",
AccessKeyId: "",
AccessKeySecret: "",
BucketName: "",
}
client := ossConfig.CreateOssConnect()
singUrl := client.GetTemporaryUrl("", 180)
fmt.Println(singUrl)
}