全部产品
阿里云办公

快速入门

更新时间:2018-08-13 12:15:17

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

创建存储空间

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

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

上传文件

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

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func handleError(err error) {
  8. fmt.Println("Error:", err)
  9. os.Exit(-1)
  10. }
  11. func main() {
  12. // Endpoint以杭州为例,其它Region请按实际情况填写。
  13. endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
  14. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  15. accessKeyId := "<yourAccessKeyId>"
  16. accessKeySecret := "<yourAccessKeySecret>"
  17. bucketName := "<yourBucketName>"
  18. objectName := "<yourObjectName>"
  19. localFileName := "<yourLocalFileName>"
  20. // 创建OSSClient实例。
  21. client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
  22. if err != nil {
  23. handleError(err)
  24. }
  25. // 获取存储空间。
  26. bucket, err := client.Bucket(bucketName)
  27. if err != nil {
  28. handleError(err)
  29. }
  30. // 上传文件。
  31. err = bucket.PutObjectFromFile(objectName, localFileName)
  32. if err != nil {
  33. handleError(err)
  34. }
  35. }

下载文件

以下代码用于获取文件的文本内容:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func handleError(err error) {
  8. fmt.Println("Error:", err)
  9. os.Exit(-1)
  10. }
  11. func main() {
  12. // Endpoint以杭州为例,其它Region请按实际情况填写。
  13. endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
  14. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  15. accessKeyId := "<yourAccessKeyId>"
  16. accessKeySecret := "<yourAccessKeySecret>"
  17. bucketName := "<yourBucketName>"
  18. objectName := "<yourObjectName>"
  19. downloadedFileName := "<yourDownloadedFileName>"
  20. // 创建OSSClient实例。
  21. client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
  22. if err != nil {
  23. handleError(err)
  24. }
  25. // 获取存储空间。
  26. bucket, err := client.Bucket(bucketName)
  27. if err != nil {
  28. handleError(err)
  29. }
  30. // 下载文件。
  31. err = bucket.GetObjectToFile(objectName, downloadedFileName)
  32. if err != nil {
  33. handleError(err)
  34. }
  35. }

列举文件

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

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func handleError(err error) {
  8. fmt.Println("Error:", err)
  9. os.Exit(-1)
  10. }
  11. func main() {
  12. // Endpoint以杭州为例,其它Region请按实际情况填写。
  13. endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
  14. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  15. accessKeyId := "<yourAccessKeyId>"
  16. accessKeySecret := "<yourAccessKeySecret>"
  17. bucketName := "<yourBucketName>"
  18. // 创建OSSClient实例。
  19. client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
  20. if err != nil {
  21. handleError(err)
  22. }
  23. // 获取存储空间。
  24. bucket, err := client.Bucket(bucketName)
  25. if err != nil {
  26. handleError(err)
  27. }
  28. // 列举文件。
  29. lsRes, err := bucket.ListObjects()
  30. if err != nil {
  31. // HandleError(err)
  32. }
  33. // 打印列举文件。
  34. for _, object := range lsRes.Objects {
  35. fmt.Println("Object:", object.Key)
  36. }
  37. }

删除文件

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

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func handleError(err error) {
  8. fmt.Println("Error:", err)
  9. os.Exit(-1)
  10. }
  11. func main() {
  12. // Endpoint以杭州为例,其它Region请按实际情况填写。
  13. endpoint := "http://oss-cn-hangzhou.aliyuncs.com"
  14. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  15. accessKeyId := "<yourAccessKeyId>"
  16. accessKeySecret := "<yourAccessKeySecret>"
  17. bucketName := "<yourBucketName>"
  18. objectName := "<yourObjectName>"
  19. // 创建OSSClient实例。
  20. client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
  21. if err != nil {
  22. handleError(err)
  23. }
  24. // 获取存储空间。
  25. bucket, err := client.Bucket(bucketName)
  26. if err != nil {
  27. handleError(err)
  28. }
  29. // 删除文件。
  30. err = bucket.DeleteObject(objectName)
  31. if err != nil {
  32. handleError(err)
  33. }
  34. }
本文导读目录