文档简介:
PUT Object - Copy
此操作用来创建一个存储在OOS里的对象拷贝。类似于执行一个GET,然后再执行一次PUT。要执行拷贝请求,用户需要对源对象有读权限,对目标Bucket有写权限。
注意:当OOS接收到请求或者正在执行拷贝操作时,拷贝操作可能会返回失败。如果在拷贝操作开始之前出现异常,OOS返回标准的错误信息。如果在拷贝操作过程中出现异常,由于200 OK状态码是先返回的,这意味着200 OK响应体可能包含成功或错误。请在客户端应用程序中解析响应体的内容并进行适当处理。
请求语法
PUT /destinationObject HTTP/1.1 Host: destinationBucket.oos-cn.ctyunapi.cn 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 x-amz-meta-paramater: value Authorization: signatureValue Date: date |
请求头格式
使用者可以通过以下请求头实现对应操作。
名称 |
描述 |
是否必需 |
x-amz-copy-source |
源Bucket和对象的名称,用斜杠(/)分割。 类型:字符串 |
是 |
x-amz-metadata-directive |
指明元数据是源对象的拷贝或者元数据被请求头提供的元数据覆盖。 类型:字符串 取值: l COPY:除存储类型(x-amz-storage-class)、数据位置(x-ctyun-data-location)外的其他元数据保持不变,拷贝源对象的元数据; l REPLACE:所有原始元数据都被指定的元数据覆盖。 默认值为COPY。 注意:如果取值为COPY,源对象和目的对象相同,则必须携带x-amz-storage-class,否则不能拷贝,返回400错误码。 |
否 |
x-amz-copy-source-if-match |
只有当源对象的Etag与给定Etag匹配时,才能执行对象拷贝操作,否则返回412HTTP状态码错误。 类型:字符串 |
否 |
x-amz-copy-source-if-none-match |
只有当源对象的Etag与给定Etag不匹配时,才能执行对象拷贝操作,否则返回412HTTP状态码错误。 类型:字符串 |
否 |
x-amz-copy-source-if-unmodified-since |
只有源对象在指定时间点之后没有修改,才执行对象拷贝操作,否则返回412错误。 类型:符合/html/rfc7232规定格式的HTTP时间字符串。 |
否 |
x-amz-copy-source-if-modified-since |
只有源对象在指定时间点之后修改过,才执行对象拷贝操作,否则返回412错误。 类型:符合/html/rfc7232规定格式的HTTP时间字符串。 |
否 |
x-amz-storage-class |
目标对象的存储类型。 类型: String 取值: l STANDARD:标准存储 l REDUCED_REDUNDANCY:低冗余存储 l STANDARD_IA:低频访问存储 默认值为STANDARD。 |
否 |
x-ctyun-data-location |
设置Bucket的数据位置。 类型:key-value形式。 取值: 格式为:type=Local,scheduleStrategy=scheduleStrategy或者type=Specified,location=location,scheduleStrategy=scheduleStrategy l type:指定数据存储位置的类型,取值为Local或者Specified。Local表示就近写入,Specified表示指定位置。如果type取值为Specified,则需要指定具体的数据位置location,location可以填写多个,以逗号分隔,可取值为ChengDu、GuiYang、LaSa、LanZhou、QingDao、SH2、ShenYang、ShenZhen、SuZhou、WuHan、WuHu、WuLuMuQi、ZhengZhou。 l scheduleStrategy:调度策略,取值为: Ø Allowed:允许OOS自动调度数据存储位置 Ø NotAllowed:不允许OOS自动调度数据存储位置。 |
否 |
x-amz-meta-paramater |
用户自定义的元数据,用户可以根据需要,自定义一些元数据的参数。 类型:字符串 |
否 |
返回元素
名称 |
描述 |
CopyObjectResult |
包含所有返回元素的容器。 |
ETag |
返回新对象的ETag。ETag只反映对象内容发生了改变,元数据未改变。 |
LastModified |
返回对象最后一次修改的日期。 |
请求示例
将存储桶bucket-sample中的对象my-image.jpg复制一份到本存储桶,新对象命名为my-second-image.jpg。
PUT /my-second-image.jpg HTTP/1.1 Host: bucket-sample.oos-cn.ctyunapi.cn Date: Mon, 03Sep 2012 22:32:00 GMT x-amz-copy-source: /bucket-sample/my-image.jpg Authorization: AWS 7799e793ce4624ee7e5a:xQE0diMbLRepdf3YB+FIEXAMPLE= |
返回示例
HTTP/1.1 200 OK x-amz-request-id: 318BC8BC148832E5 Date: Mon, 03Sep 2012 22:32:00 GMT Connection: close Server: CTYUN
<CopyObjectResult> <LastModified>2012-09-01T22:32:00</LastModified> <ETag>9b2cf535f27731c974343645a3985328</ETag> </CopyObjectResult> |