- cos-go-sdk 是腾讯云对象存储服务 COS go语言版本SDK
##环境
- cos-go-sdk 推荐使用 Go 1.2 及以上 Go 语言版本。
- Windows,Linux,Mac OS X
##安装
go get github.com/yangluoGitHub/cos-go-sdk
##https支持
- 修改config.go中Endpoint值为:https://web.file.myqcloud.com/files/v1/
##快速入门
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.CreateFolder("/cos-go-sdk/createFolder/test/", "test")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nCtime:", res.Data.Ctime,
"\nResource Path:", res.Data.ResourcePath)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.Upload("../test/test.jpg", "/cos-go-sdk/upload/test.jpg", "upload test")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nUrl:", res.Data.Url,
"\nResourcePath:", res.Data.ResourcePath,
"\nAccess Url:", res.Data.AccessUrl)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
//用户指定分片大小来分片上传
res, err := bucket.Upload_slice("../test/data.bin", "/cos-go-sdk/upload_slice/data.bin", "upload_slice test", 3*1024*1024, "")
//上传失败,重新上传,不论是否指定session,都可以实现断点续传
// res, err := bucket.Upload_slice("../test/data.bin", "/cos-go-sdk/upload_slice/data.bin", "upload_slice test", 3*1024*1024, "48d44422-3188-4c6c-b122-6f780742f125+CpzDLtEHAA==")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nUrl:", res.Data.Url,
"\nResourcePath:", res.Data.ResourcePath,
"\nAccess Url:", res.Data.AccessUrl)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.ListFolder("/cos-go-sdk/createFolder/test/", 20, coscloud.ELISTBOTH, coscloud.Asc, "")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nContext:", res.Data.Context,
"\nHasMore:", res.Data.HasMore,
"\nDirCount:", res.Data.DirCount,
"\nFileCount:", res.Data.FileCount,
)
fmt.Println("=================================")
for _, info := range res.Data.Infos {
fmt.Println("Name:", info.Name,
"\nBizAttr:", info.BizAttr,
"\nFileSize:", info.FileSize,
"\nFileLen:", info.FileLen,
"\nSha:", info.Sha,
"\nCtime:", info.Ctime,
"\nMtime:", info.Mtime,
"\nAccess URL:", info.AccessUrl,
)
fmt.Println("=================================")
}
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.PrefixSearch("/cos-go-sdk", 20, coscloud.ELISTBOTH, coscloud.Asc, "")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nContext:", res.Data.Context,
"\nHasMore:", res.Data.HasMore,
"\nDirCount:", res.Data.DirCount,
"\nFileCount:", res.Data.FileCount,
)
fmt.Println("=================================")
for _, info := range res.Data.Infos {
fmt.Println("Name:", info.Name,
"\nBizAttr:", info.BizAttr,
"\nFileSize:", info.FileSize,
"\nFileLen:", info.FileLen,
"\nSha:", info.Sha,
"\nCtime:", info.Ctime,
"\nMtime:", info.Mtime,
"\nAccess URL:", info.AccessUrl,
)
fmt.Println("=================================")
}
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.UpdateFolder("/cos-go-sdk/createFolder/test/", "update-attr")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code, "\nMessage:", res.Message)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.Update("/cos-go-sdk/upload/test.jpg", "update-attr")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code, "\nMessage:", res.Message)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.StatFolder("/cos-go-sdk/createFolder/test/")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nName:", res.Data.Name,
"\nBizAttr:", res.Data.BizAttr,
"\nCtime:", res.Data.Ctime,
"\nMtime:", res.Data.Mtime)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.Stat("/cos-go-sdk/upload/test.jpg")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code,
"\nMessage:", res.Message,
"\nName:", res.Data.Name,
"\nBizAttr:", res.Data.BizAttr,
"\nFileSize:", res.Data.FileSize,
"\nFileLen:", res.Data.FileLen,
"\nSha:", res.Data.Sha,
"\nCtime:", res.Data.Ctime,
"\nMtime:", res.Data.Mtime,
"\nAccess Url:", res.Data.AccessUrl)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.DelFolder("/cos-go-sdk/createFolder/test/")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code, "\nMessage:", res.Message)
//new bucket Object
bucket, _ := coscloud.New(appId, secretId, secretKey, bucketName)
res, err := bucket.Del("/cos-go-sdk/upload/test.jpg")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Code:", res.Code, "\nMessage:", res.Message)
##完整示例
更多示例请查看 examples 目录
##项目文档
针对每个 API 接口需要有独立的接口文档,请查看 docs 目录。