最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

golang操作阿里云對象存儲——OSS | 創(chuàng)建桶、上傳、下載、查詢、刪除數(shù)據(jù)

標(biāo)簽:
Go

本节介绍如何快速使用OSS Go SDK完成常见操作,如创建存储空间(Bucket)、上传/下载文件(Object)等。

先下载包github.com/aliyun/aliyun-oss-go-sdk/oss到GOPATH下

创建存储空间

存储空间是OSS全局命名空间,相当于数据的容器,可以存储若干文件。 以下代码用于新建一个存储空间:

package main
import (
   "fmt"
   "os"
   "github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func handleError(err error) {
   fmt.Println("Error:", err)
   os.Exit(-1)
}
func main() {
   // Endpoint以杭州为例,其它Region请按实际情况填写。
   endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
   // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
   accessKeyId := "<yourAccessKeyId>"
   accessKeySecret := "<yourAccessKeySecret>"
   bucketName := "<yourBucketName>"
   // 创建OSSClient实例。
   client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
   if err != nil {
       handleError(err)
   }
   // 创建存储空间。
   err = client.CreateBucket(bucketName)
   if err != nil {
       handleError(err)
   }
}

存储空间的命名规范,请参见基本概念中的命名规范。创建存储空间详情,请参见创建存储空间。

获取endpoint信息,请参见访问域名和数据中心文档。

上传文件

以下代码用于上传文件至OSS:

package main
import (
   "fmt"
   "os"
   "github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func handleError(err error) {
   fmt.Println("Error:", err)
   os.Exit(-1)
}
func main() {
   // Endpoint以杭州为例,其它Region请按实际情况填写。
   endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
   // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
   accessKeyId := "<yourAccessKeyId>"
   accessKeySecret := "<yourAccessKeySecret>"
   bucketName := "<yourBucketName>"
   // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
   objectName := "<yourObjectName>"
   // <yourLocalFileName>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
   localFileName := "<yourLocalFileName>"
   // 创建OSSClient实例。
   client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
   if err != nil {
       handleError(err)
   }
   // 获取存储空间。
   bucket, err := client.Bucket(bucketName)
   if err != nil {
       handleError(err)
   }
   // 上传文件。
   err = bucket.PutObjectFromFile(objectName, localFileName)
   if err != nil {
       handleError(err)
   }
}

下载文件

以下代码用于下载文件到本地:

package main
import (
   "fmt"
   "os"
   "github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func handleError(err error) {
   fmt.Println("Error:", err)
   os.Exit(-1)
}
func main() {
   // Endpoint以杭州为例,其它Region请按实际情况填写。
   endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
   // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
   accessKeyId := "<yourAccessKeyId>"
   accessKeySecret := "<yourAccessKeySecret>"
   bucketName := "<yourBucketName>"
   // <yourObjectName>从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
   objectName := "<yourObjectName>"
   downloadedFileName := "<yourDownloadedFileName>"
   // 创建OSSClient实例。
   client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
   if err != nil {
       handleError(err)
   }
   // 获取存储空间。
   bucket, err := client.Bucket(bucketName)
   if err != nil {
       handleError(err)
   }
   // 下载文件。
   err = bucket.GetObjectToFile(objectName, downloadedFileName)
   if err != nil {
       handleError(err)
   }
}

列举文件

以下代码用于列举指定存储空间下的文件。默认列举100个文件。

package main
import (
   "fmt"
   "os"
   "github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func HandleError(err error) {
   fmt.Println("Error:", err)
   os.Exit(-1)
}
func main() {
   // 创建OSSClient实例。
   client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
   if err != nil {
       HandleError(err)
   }
   // 获取存储空间。
   bucketName := "<yourBucketName>"
   bucket, err := client.Bucket(bucketName)
   if err != nil {
       HandleError(err)
   }
   // 列举文件。
   marker := ""
   for {
       lsRes, err := bucket.ListObjects(oss.Marker(marker))
       if err != nil {
           HandleError(err)
       }
       // 打印列举文件,默认情况下一次返回100条记录。 
       for _, object := range lsRes.Objects {
           fmt.Println("Bucket: ", object.Key)
       }
       if lsRes.IsTruncated {
           marker = lsRes.NextMarker
       } else {
           break
       }
   }
}

删除文件

以下代码用于删除指定文件:

package main
import (
   "fmt"
   "os"
   "github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func handleError(err error) {
   fmt.Println("Error:", err)
   os.Exit(-1)
}
func main() {
   // Endpoint以杭州为例,其它Region请按实际情况填写。
   endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
   // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
   accessKeyId := "<yourAccessKeyId>"
   accessKeySecret := "<yourAccessKeySecret>"
   bucketName := "<yourBucketName>"
   // <yourObjectName>表示删除OSS文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
   objectName := "<yourObjectName>"
   // 创建OSSClient实例。
   client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
   if err != nil {
       handleError(err)
   }
   // 获取存储空间。
   bucket, err := client.Bucket(bucketName)
   if err != nil {
       handleError(err)
   }
   // 删除文件。
   err = bucket.DeleteObject(objectName)
   if err != nil {
       handleError(err)
   }
}

删除文件详情请参见管理文件中的删除文件。

参考

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消