本文介绍如何删除文件。

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

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

删除单个文件

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

package main

import (
	"fmt"
	"os"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 创建OSSClient实例。
	client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucketName := "<yourBucketName>"
	objectName := "<yourObjectName>"

	// 获取存储空间。
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 删除单个文件。
	err = bucket.DeleteObject(objectName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}

删除多个文件

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

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

package main

import (
	"fmt"
	"os"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 创建OSSClient实例。
	client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucketName := "<yourBucketName>"

	// 获取存储空间。
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 返回删除成功的文件。
	delRes, err := bucket.DeleteObjects([]string{"my-object-1", "my-object-2"})
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Println("Deleted Objects:", delRes.DeletedObjects)

	// 不返回删除的结果。
	_, err = bucket.DeleteObjects([]string{"my-object-3", "my-object-4"},
	oss.DeleteObjectsQuiet(true))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}