删除桶
Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何删除桶(Bucket)。
- DeleteBucket
DeleteBucket操作用于删除bucket,删除一个bucket前,需要先删除该bucket中的全部对象(包括object versions和delete markers)。
代码示例:
// 删除一个bucket
func DeleteBucket(svc *s3.S3) {
deleteBucketInput := &s3.DeleteBucketInput{
Bucket: aws.String("exampleBucket"),
}
_, err := svc.DeleteBucket(deleteBucketInput)
if err != nil {
fmt.Printf("fail to delete bucket. %v\n", err)
}
}
DeleteBucketInput可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
Bucket | *string | bucket的名称。 | 是 |
- DeleteBucketRequest
DeleteBucketRequest操作首先生成一个"request.Request"对象,该对象是一个执行DeleteBucket操作的请求。通过调用Request对象的Send方法完成删除bucket的操作。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。
代码示例:
func DeleteBucketRequest(svc *s3.S3) {
deleteBucketInput := &s3.DeleteBucketInput{
Bucket: aws.String("exampleBucket"),
}
req, resp := svc.DeleteBucketRequest(deleteBucketInput)
err := req.Send()
if err != nil {
fmt.Printf("fail to delete bucket. %v\n", err)
} else {
fmt.Println(resp)
}
}
响应结果:
HTTP状态 | 响应码 | 描述 |
---|---|---|
204 | NoContent | 删除桶成功。 |
403 | AccessDenied | 用户没有权限执行操作。 |
404 | NoSuchBucket | 用户删除的桶不存在。 |
409 | BucketNotEmpty | 删除的桶不为空。 |