删除对象标签

  • DeleteObjectTagging

DeleteObjectTagging操作可以删除一个对象的全部标签信息,删除时可以设置版本Id参数删除指定版本对象的标签信息,如果不设置版本Id,则默认删除当前版本的对象标签信息。

代码示例:

// 删除对象全部标签
func DeleteObjectTagging(svc *s3.S3) {
    deleteObjectTaggingInput := &s3.DeleteObjectTaggingInput{
        Bucket: aws.String("exampleBucket"),
        Key:    aws.String("exampleKey"),
    }

    deleteObjectTaggingOutput, err := svc.DeleteObjectTagging(deleteObjectTaggingInput)
    if err != nil {
        fmt.Printf("fail to delete object tagging. %v\n", err)
        return
    }
    fmt.Println(deleteObjectTaggingOutput)
}

DeleteObjectTaggingInput可设置的参数如下:

参数 类型 说明 是否必要
Bucket *string 执行本操作的桶名称。
Key *string 被删除标签信息的对象的key。
VersionId *string 被删除标签信息的对象的versionId
  • DeleteObjectTaggingRequest

    DeleteObjectTaggingRequest操作首先生成一个"request.Request"对象,该对象是一个执行DeleteObjectTagging操作的请求。通过调用Request对象的Send方法来删除对象的标签信息。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。

代码示例:

func DeleteObjectTaggingRequest(svc *s3.S3) {
    deleteObjectTaggingInput := &s3.DeleteObjectTaggingInput{
        Bucket: aws.String("exampleBucket"),
        Key:    aws.String("exampleKey"),
    }
    req, resp := svc.DeleteObjectTaggingRequest(deleteObjectTaggingInput)

    err := req.Send()
    if err != nil {
        fmt.Printf("fail to delete object tagging. %v\n", err)
    } else {
        fmt.Println(resp)
    }
}

响应结果:

HTTP状态 响应码 描述
204 NoContent 操作成功。
400 InvalidBucketName 请求中设置桶的名字不合法。
400 InvalidObjectName 请求中设置对象的名字不合法
403 AccessDenied 用户没有权限执行操作。
404 NoSuchBucket 请求参数中设置的桶不存在。
404 NoSuchKey 请求参数中设置的对象key或者版本Id不存在。