3

如何使用 REST 或 SOAP 更改 Amazon S3 对象的键/名称?

4

1 回答 1

3

重命名对象的唯一方法是将旧对象复制到新对象,并在新副本上设置新名称。

您需要的 REST 调用在此处进行了详细说明

句法

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 不会被保留,而是为发出请求的用户设置为私有的。

于 2012-08-29T21:06:34.103 回答