本文介绍如何删除文件。

警告 请您谨慎使用删除操作,文件一旦删除将无法恢复。

删除文件的完整代码请参见GitHub

删除单个文件

以下代码用于删除单个文件:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 创建OSSClient实例。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. objectName := "<yourObjectName>"
  16. // 获取存储空间。
  17. bucket, err := client.Bucket(bucketName)
  18. if err != nil {
  19. fmt.Println("Error:", err)
  20. os.Exit(-1)
  21. }
  22. // 删除单个文件。
  23. err = bucket.DeleteObject(objectName)
  24. if err != nil {
  25. fmt.Println("Error:", err)
  26. os.Exit(-1)
  27. }
  28. }

删除多个文件

您可以通过Bucket.DeleteObjects来删除多个文件,并通过DeleteObjectsQuiet参 数来指定是否返回删除的结果。默认返回删除成功的文件。

以下代码用于批量删除文件:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 创建OSSClient实例。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. // 获取存储空间。
  16. bucket, err := client.Bucket(bucketName)
  17. if err != nil {
  18. fmt.Println("Error:", err)
  19. os.Exit(-1)
  20. }
  21. // 返回删除成功的文件。
  22. delRes, err := bucket.DeleteObjects([]string{"my-object-1", "my-object-2"})
  23. if err != nil {
  24. fmt.Println("Error:", err)
  25. os.Exit(-1)
  26. }
  27. fmt.Println("Deleted Objects:", delRes.DeletedObjects)
  28. // 不返回删除的结果。
  29. _, err = bucket.DeleteObjects([]string{"my-object-3", "my-object-4"},
  30. oss.DeleteObjectsQuiet(true))
  31. if err != nil {
  32. fmt.Println("Error:", err)
  33. os.Exit(-1)
  34. }
  35. }