我正在使用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接受: /
授权:授权字符串日期:星期四,2016年9月22日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");
添加标签可能需要额外的用户权限吗?
答案 0 :(得分:1)
实际上这是一个权限问题。该修复涉及为对象标记启用用户权限。