【问题标题】:AWS Object Tagging using x-amz-tagging request header使用 x-amz-tagging 请求标头的 AWS 对象标记
【发布时间】:2017-08-21 21:39:39
【问题描述】:

我正在使用 Put Object 端点将文件的内容上传到 s3,并尝试使用 x-amz-tagging 请求标头。

在此处查看文档:http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html

如上面链接中的示例 6:

示例 6:上传对象并指定标签

在此上传对象请求中,您指定可选的 x-amz-taggging 标头为对象添加标签。

复制 PUT /example-object HTTP/1.1 主机: example-bucket.s3.amazonaws.com 接受:/
授权:授权字符串日期:Thu, 22 Sep 2016 21:58:13 GMT x-amz-tagging:tag1=value1&tag2=value2

[...对象数据的字节数]

我生成了一个类似用于生成授权字符串的基本字符串:

String baseString = "PUT\n\ntext/plain\n" 
    + currentDate + "\n" 
    + "x-amz-tagging:tag1=value1&tag2=value2" + "\n" 
    + "/" + LOG_BUCKET_NAME + THE_REST_OF_THE_URL;

然后像这样构建我的请求:

request.setRawHeader("Date", currentDate);
request.setRawHeader("Authorization", authorizationString);
request.setRawHeader("x-amz-tagging", "tag1=value&tag2=value2);

我每次都遇到禁止错误,但添加 元数据 效果很好:

基本字符串:

String baseString = "PUT\n\ntext/plain\n" 
    + currentDate + "\n" 
    + "x-amz-meta-reviewedby:my_email@domain.com" + "\n" 
    + "/" + LOG_BUCKET_NAME + THE_REST_OF_THE_URL;

然后:

request.setRawHeader("Date", currentDate);
request.setRawHeader("Authorization", authorizationString);
request.setRawHeader("X-Amz-Meta-ReviewedBy", "my_email@domain.com");

添加标签是否可能需要额外的用户权限?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    实际上是权限问题。修复涉及启用对象标记的用户权限。

    【讨论】:

    • 你在哪里改?
    • S3 存储桶策略已更改。如果您使用 CloudFormation,您的模板应包含一个 AWS::S3::BucketPolicy 定义,该定义引用 Bucket 属性中的存储桶,CloudFront 原始访问用户作为主体,并在操作中包含“s3:PutObjectTagging”。如果您通过 AWS 控制台进行维护,请转到 S3 存储桶,选择“权限”选项卡,然后单击“存储桶策略”。从那里您应该能够将 s3:PutObjectTagging 添加到您允许的操作中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多