【发布时间】:2012-08-29 11:13:09
【问题描述】:
如何使用 REST 或 SOAP 更改 Amazon S3 对象的键/名称?
【问题讨论】:
标签: rest soap amazon-s3 amazon-web-services
如何使用 REST 或 SOAP 更改 Amazon S3 对象的键/名称?
【问题讨论】:
标签: rest soap amazon-s3 amazon-web-services
重命名对象的唯一方法是将旧对象复制到新对象,并在新副本上设置新名称。
您需要的 REST 调用详解here。
语法
PUT /destinationObject HTTP/1.1
Host: destinationBucket.s3.amazonaws.com
x-amz-copy-source: /source_bucket/sourceObject
x-amz-metadata-directive: metadata_directive
x-amz-copy-source-if-match: etag
x-amz-copy-source-if-none-match: etag
x-amz-copy-source-if-unmodified-since: time_stamp
x-amz-copy-source-if-modified-since: time_stamp
<request metadata>
Authorization: signatureValue
Date: date
PUT 操作的这个实现创建了一个对象的副本 已存储在 Amazon S3 中。一个 PUT 复制操作是一样的 就像执行 GET 然后执行 PUT。添加请求标头, x-amz-copy-source,使 PUT 操作将源对象复制到 目标存储桶。
但请记住现有的 ACL:
复制对象时,可以保留大部分元数据 (默认)或指定新的元数据。但是,不保留 ACL 并为发出请求的用户设置为私有。
【讨论】: