PUT Object - Copy 本节主要介绍PUT ObjectCopy。 此操作用来创建一个存储在OOS里的文件拷贝。类似于执行一个GET,然后再执行一次PUT。要执行拷贝请求,用户需要对源文件有读权限,对目标Bucket有写权限。 注意 当OOS接收到请求或者正在执行拷贝操作时,拷贝操作可能会返回失败。如果在拷贝操作开始之前出现异常,OOS返回标准的错误信息。如果在拷贝操作过程中出现异常,由于200 OK状态码是先返回的,这意味着200 OK响应体可能包含成功或错误。请在客户端应用程序中解析响应体的内容并进行适当处理。 请求语法 plaintext PUT /destinationObject HTTP/1.1 Host: destinationBucket.ooscn.ctyunapi.cn xamzcopysource: /sourcebucket/sourceObject xamzmetadatadirective: metadatadirective xamzcopysourceifmatch: etag xamzcopysourceifnonematch: etag xamzcopysourceifunmodifiedsince: timestamp xamzcopysourceifmodifiedsince: timestamp xamzmetaparamater: value Authorization: SignatureValue Date: date 请求头 名称 描述 是否必须 xamzcopysource 源Bucket和文件的名称,用斜杠(/)分割。 类型:字符串。 是 xamzmetadatadirective 指明元数据是源文件的拷贝或者元数据被请求头提供的元数据覆盖。 类型:字符串。 取值: COPY:除存储类型(xamzstorageclass)、数据位置(xctyundatalocation)外的其他元数据保持不变,拷贝源文件的元数据。 REPLACE:所有原始元数据都被指定的元数据覆盖。 默认值为COPY。 注意 如果取值为COPY,源文件和目的文件相同,则必须携带xamzstorageclass,否则不能拷贝,返回400错误码。 否 xamzcopysourceifmatch 只有当源文件的Etag与给定Etag匹配时,才能执行文件拷贝操作,否则返回412 HTTP状态码错误。 类型:字符串。 否 xamzcopysourceifnonematch 只有当源文件的Etag与给定Etag不匹配时,才能执行文件拷贝操作,否则返回412 HTTP状态码错误。 类型:字符串。 否 xamzcopysourceifunmodifiedsince 只有源文件在指定时间点之后没有修改,才执行文件拷贝操作,否则返回412错误。 类型:字符串。 取值:格式为EEE, d MMM yyyy HH:mm:ss 'GMT'。 否 xamzcopysourceifmodifiedsince 只有源文件在指定时间点之后修改过,才执行文件拷贝操作,否则返回412错误。 类型:字符串。 取值:格式为EEE, d MMM yyyy HH:mm:ss 'GMT'。 否 xamzstorageclass 目标文件的存储类型。 类型:字符串。 取值: STANDARD:标准存储。 STANDARDIA:低频访问存储 默认值为STANDARD。 否 xctyundatalocation 目标文件的数据位置。 注意 香港节点不支持此参数。 类型:字符串。 取值: 格式为:typeLocal,scheduleStrategyscheduleStrategy 或者typeSpecified,locationlocation ,scheduleStrategyscheduleStrategy type:指定数据存储位置的类型,取值为Local或者Specified。Local表示就近写入,Specified表示指定位置。如果type取值为Specified,则需要指定具体的数据位置location,location可以填写多个,以逗号分隔: 对于对象存储网络,可取值为:ChengDu、GuiYang、LanZhou、QingDao、SH2、ShenYang、ShenZhen、SuZhou、WuHan、WuHu、WuLuMuQi、ZhengZhou。 对于对象存储网络2,可取值为:NeiMeng1、HangZhou1。 scheduleStrategy:调度策略,取值为: Allowed:允许OOS自动调度数据存储位置。 NotAllowed:不允许OOS自动调度数据存储位置。 否 xamzmetaparamater 用户自定义的元数据,用户可以根据需要,自定义一些元数据的参数。 类型:字符串。 否