删除对象标签
- 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不存在。 |