删除桶

注意

删除桶之前,必须先删除桶内的所有文件的版本、标记和分片上传产生的碎片。 如果该桶下还有未完成的上传请求,则需要通过 listUploads 和 abortMultipartUpload 取消请求后才能删除桶。

以下代码为删除桶示例:

package main

import (
    "fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/credentials"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
    "os"
)

func exitErrorf(msg string, args ...interface{}) {
    fmt.Fprintf(os.Stderr, msg+"\n", args...)
    os.Exit(1)
}

func main() {
    sess, err := session.NewSession(&aws.Config{
        Region:      aws.String("Region"),
        Endpoint:    aws.String("your-endpoint"),
        Credentials: credentials.NewStaticCredentials("your-access-key", "your-secret-access-key", ""),
    })
    svc := s3.New(sess)
    params := &s3.DeleteBucketInput{
        Bucket: aws.String("your-bucket-name"),
    }
    _, err = svc.DeleteBucket(params)
    if err != nil {
        exitErrorf("Unable to delete bucket %q, %v", *params.Bucket, err)
    }
    // Wait until bucket is created before finishing
    fmt.Printf("Delete  bucket %q ", *params.Bucket)
}

注意

删除桶之前,必须先删除桶内的所有文件的版本、标记和分片上传产生的碎片。如果该桶下还有未完成的上传请求,则需要通过 listUploads 和 abortMultipartUpload 取消请求后才能删除桶。