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

表 3.14. 请求 Headers
名称描述Type必需

X-Copy-From

PUT 请求一起使用,以定义源容器/对象路径。

字符串

是,如果使用 PUT

目的地

COPY 请求一起使用以定义目标容器/对象路径。

字符串

是,如果使用 COPY

If-Modified-Since

只有因为源对象的 last_modified 属性的日期/时间而进行修改时,才会复制。

Date

If-Unmodified-Since

仅在不修改源对象 last_modified 属性的日期/时间时复制。

Date

Copy-If-Match

只有在请求中的 ETag 与源对象的 ETag 匹配时才复制。

etag。

Copy-If-None-Match

只有在请求中的 ETag 不与源对象的 ETag 匹配时才复制。

etag。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.