3.6.6. Swift 复制对象
通过复制对象,您可以制作对象的服务器端副本,因此您不必下载对象并将其上传到其他容器下。要将一个对象的内容复制到另一个对象,您可以使用 API 版本、帐户和容器名称发出 PUT
请求或 COPY
请求。
对于 PUT
请求,请使用请求中的目标容器和对象名称,以及请求标头中的源容器和对象。
对于 Copy
request,请使用请求中的源容器和对象,以及请求标头中的目标容器和对象。您必须具有容器的写入权限才能复制对象。目标对象名称在容器内必须是唯一的。请求不是幂等的,因此如果您不使用唯一名称,则请求将更新目标对象。如果目标名称位于不同的伪层次结构目录中,您可以使用伪层次结构语法,将目的地对象与同一名称的源对象区分开。您可以在请求中包含访问控制标头和元数据标头。
语法
PUT /AP_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1 X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
或者:
语法
COPY /AP_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1 Destination: TENANT:DEST_CONTAINER/DEST_OBJECT
名称 | 描述 | Type | 必需 |
---|---|---|---|
|
与 | 字符串 |
是,如果使用 |
|
与 | 字符串 |
是,如果使用 |
|
只有因为源对象的 | Date | 否 |
|
仅在不修改源对象 | Date | 否 |
| 只有在请求中的 ETag 与源对象的 ETag 匹配时才复制。 | etag。 | 否 |
| 只有在请求中的 ETag 不与源对象的 ETag 匹配时才复制。 | etag。 | 否 |