美文网首页
Put Object Copy文档

Put Object Copy文档

作者: lewzylu | 来源:发表于2017-08-23 15:49 被阅读0次

    Put Object Copy

    功能描述


    Put Object Copy 请求实现将一个文件从源路径复制到目标路径。建议文件大小1M到5G,超过5G的文件请使用分块上传Upload - Copy。在拷贝的过程中,文件元属性和ACL可以被修改。
    用户可以通过该接口实现文件移动,文件重命名,修改文件属性和创建副本。
    在跨帐号复制的时候,需要先设置被复制文件的权限为公有读,或者对目标帐号赋权,同帐号则不需要。

    请求


    语法示例:

    PUT /destinationObject HTTP 1.1
    Host:Bucketname-UID.ce.myqcloud.com
    Date:date
    Cache-Control:
    Content-Disposition:
    Content-Encoding:
    Content-Length:
    Content-Type:
    Expect:
    Expires:
    Authorization: Auth
    X-cos-copy-source:Bucketname-UID.ce.myqcloud.com/filepath
    x-cos-metadata-directive:
    x-cos-copy-source-If-Modified-Since:
    x-cos-copy-source-If-Unmodified-Since:
    x-cos-copy-source-If-Match:
    x-cos-copy-source-If-None-Match:
    x-cos-storage-class:
    

    Authorization: Auth String (详细参见 请求签名 章节)

    请求行

    PUT /destinationObject HTTP 1.1
    

    该 API 接口接受 PUT请求。

    请求头

    公共头部

    该请求操作的实现使用公共请求头,了解公共请求头详细请参见 公共请求头部 章节。

    非公共头部

    必选头部
    该请求操作的实现使用如下必选头部:

    名称 描述 类型 必选
    x-cos-copy-source 源文件URL路径,可以通过versionid子资源指定历史版本 String

    推荐头部
    该请求操作的实现使用如下推荐请求头部信息:

    名称 描述 类型 必选
    x-cos-metadata-directive 是否拷贝元数据,枚举值:Copy, Replaced,默认值Copy。假如标记为Copy,忽略Header中的用户元数据信息直接复制;假如标记为Replaced,按Header信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为Replaced String
    x-cos-copy-source-If-Modified-Since 当Object在指定时间后被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-None-Match一起使用,与其他条件联合使用返回冲突。 String
    x-cos-copy-source-If-Unmodified-Since 当Object在指定时间后未被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-Match一起使用,与其他条件联合使用返回冲突。 String
    x-cos-copy-source-If-Match 当Object的Etag和给定一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。 String
    x-cos-copy-source-If-None-Match 当Object的Etag和给定不一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用,与其他条件联合使用返回冲突。 String
    x-cos-storage-class 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA,Nearline;默认值:Standard String
    x-cos-acl 允许用户自定义文件权限。<br />有效值:private , public-read,默认值:private。 String
    X-cos-grant-read 赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" ";
    当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
    当需要给根账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>"
    String
    X-cos-grant-write 赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" ";
    当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
    当需要给根账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>"
    String
    X-cos-grant-full-control 赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" ";
    当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",
    当需要给根账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>"
    String
    x-cos-meta-* 其他自定义的文件头部 String

    请求体


    该请求的请求体为空。

    响应

    响应头

    公共响应头

    该响应使用公共响应头,了解公共响应头详细请参见 公共响应头部 章节。

    特有响应头

    该响应无特殊的响应头。

    响应体


    该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:

    <CopyObjectResult>
      <ETag></ETag>
      <LastModified></LastModified>
    </CopyObjectResult>
    

    具体的数据内容如下:

    名称 描述 类型
    CopyObjectResult 返回复制结果信息 String
    ETag 返回文件的 SHA-1 算法校验值。ETag 的值可以用于检查 Object 的内容是否发生变化。 String
    LastModified 返回文件最后修改时间,GMT格式 String

    实际案例

    若需要跨帐号复制则需要先设置被复制帐号的acl,允许目标帐号读取被复制对象,了解acl详细请参见 PutObjectAcl 章节。

     PUT /222.txt HTTP/1.1
    Host: bucket1-1252443703.cn-north.myqcloud.com 
    Connection: keep-alive Accept-Encoding: gzip, deflate Accept: */* 
    User-Agent: python-requests/2.12.4 
    Authorization: q-sign-algorithm=sha1&q-ak=AKID15IsskiBQKTZbAo6WhgcBqVls9SmuG00&q-sign-time=1480932292;1981012292&q-key-time=1480932292;1981012292&q-url-param-list=&q-header-list=host&q-signature=eacefe8e2a0dc8a18741d9a29707b1dfa5aa47cc
    x-cos-copy-source: bucket2-1252443704.cn-north.myqcloud.com/1.txt 
    Content-Length: 0  
    

    响应

     HTTP/1.1 200 OK
    Content-Type: application/xml
    Content-Length: 133 
    Connection: keep-alive Date: Fri, 04 Aug 2017 02:41:45 GMT
    Server: tencent-cos
    x-cos-request-id: NTk4M2RlZTlfZDRiMDM1MGFfYTA1ZV8xMzNlYw==
    
    <CopyObjectResult>
    <ETag>"ba82b57cfdfda8bd17ad4e5879ebb4fe"</ETag>
    <LastModified>2017-08-04T02:41:45</LastModified>
    </CopyObjectResult>
    ```#Put Object Copy
    ## 功能描述
    <!-- 描述该 API 的功能、背景、条件等-->
    Put Object Copy  请求实现将一个文件从源路径复制到目标路径。建议文件大小1M到5G,超过5G的文件请使用分块上传Upload - Copy。在拷贝的过程中,文件元属性和ACL可以被修改。
    用户可以通过该接口实现文件移动,文件重命名,修改文件属性和创建副本。
    在跨帐号复制的时候,需要先设置被复制文件的权限为公有读,或者对目标帐号赋权,同帐号则不需要。
    ## 请求
    <!-- 完整结构的请求语法示例,包括请求行、请求头、请求体。请求行中要有必选参数,非必选的不用写-->
    语法示例:
    

    PUT /destinationObject HTTP 1.1
    Host:Bucketname-UID.ce.myqcloud.com
    Date:date
    Cache-Control:
    Content-Disposition:
    Content-Encoding:
    Content-Length:
    Content-Type:
    Expect:
    Expires:
    Authorization: Auth
    X-cos-copy-source:Bucketname-UID.ce.myqcloud.com/filepath
    x-cos-metadata-directive:
    x-cos-copy-source-If-Modified-Since:
    x-cos-copy-source-If-Unmodified-Since:
    x-cos-copy-source-If-Match:
    x-cos-copy-source-If-None-Match:
    x-cos-storage-class:

    <!-- 代码块中注意:
           1. HTTP 是全大写;
           2. 每一个冒号后面都有一个空格;
           3. Dete 格式是 GMT Date;
           4. Authorization 统一为 Auth String -->
    > Authorization: Auth String (详细参见 [请求签名](https://www.qcloud.com/document/product/436/7778) 章节)
    
    ### 请求行
    <!-- 将以上完整结构的请求语法示例中的请求行单独描述说明-->
    

    PUT /destinationObject HTTP 1.1

    该 API 接口接受 PUT请求。
    
    ### 请求头
    
    #### 公共头部
    该请求操作的实现使用公共请求头,了解公共请求头详细请参见 [公共请求头部](https://www.qcloud.com/document/product/436/7728) 章节。
    
    #### 非公共头部
    <!-- 如果实际 API 中没有非公共头部内容,表述的语句为:该请求操作无特殊的请求头部信息。
    并且以下“必选头部”、“推荐头部”和“权限相关头部”都不用说明。-->
    **必选头部**<!-- 如果实际 API 中没有,可以不用出现 -->
    该请求操作的实现使用如下必选头部:
    
    | 名称                                    | 描述                                       | 类型     | 必选   |
    | ------------------------------------- | ---------------------------------------- | ------ | ---- |
    | x-cos-copy-source                     | 源文件URL路径,可以通过versionid子资源指定历史版本                                 | String | 是    |
    
    
    **推荐头部**<!-- 如果实际 API 中没有,可以不用出现 -->
    该请求操作的实现使用如下推荐请求头部信息:
    
    | 名称               | 描述      | 类型     | 必选   |
    | ---------------- | ---------- | ------ | -------- |
    | x-cos-metadata-directive              | 是否拷贝元数据,枚举值:Copy, Replaced,默认值Copy。假如标记为Copy,忽略Header中的用户元数据信息直接复制;假如标记为Replaced,按Header信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为Replaced | String | 否    |
    | x-cos-copy-source-If-Modified-Since   | 当Object在指定时间后被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-None-Match一起使用,与其他条件联合使用返回冲突。 | String | 否    |
    | x-cos-copy-source-If-Unmodified-Since | 当Object在指定时间后未被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-Match一起使用,与其他条件联合使用返回冲突。 | String | 否    |
    | x-cos-copy-source-If-Match            | 当Object的Etag和给定一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。 | String | 否    |
    | x-cos-copy-source-If-None-Match       | 当Object的Etag和给定不一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用,与其他条件联合使用返回冲突。 | String | 否    |
    | x-cos-storage-class                   | 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA,Nearline;默认值:Standard | String | 否    |
    | x-cos-acl                             | 允许用户自定义文件权限。<br />有效值:private , public-read,默认值:private。 | String | 否    |
    | X-cos-grant-read                      |   赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" ";<br>当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",<br>当需要给根账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>" | String | 否    |
    | X-cos-grant-write                     | 赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" ";<br>当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",<br>当需要给根账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>"  | String | 否    |
    | X-cos-grant-full-control              | 赋予被授权者读的权限。格式:x-cos-grant-read: id=" ",id=" ";<br>当需要给子账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>",<br>当需要给根账户授权时,id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>"  | String | 否    |
    | x-cos-meta-*                          | 其他自定义的文件头部                               | String | 否    |
    
    
    ### 请求体
    <!-- 如果实际 API 中没有请求体,表述的语句为:该请求的请求体为空。-->
    该请求的请求体为空。
    
    
    ## 响应
    
    ### 响应头
    #### 公共响应头 
    该响应使用公共响应头,了解公共响应头详细请参见 [公共响应头部](https://www.qcloud.com/document/product/436/7729) 章节。
    #### 特有响应头
    该响应无特殊的响应头。
    
    ### 响应体
    <!-- 如果实际 API 中没有请求体,表述的语句为:该响应体返回为空。-->
    该响应体返回为 **application/xml** 数据,包含完整节点数据的内容展示如下:
    

    <CopyObjectResult>
    <ETag></ETag>
    <LastModified></LastModified>
    </CopyObjectResult>

    具体的数据内容如下:
    
    | 名称               | 描述                                       | 类型     |
    | ---------------- | ---------------------------------------- | ------ |
    | CopyObjectResult | 返回复制结果信息                                 | String |
    | ETag             | 返回文件的 SHA-1 算法校验值。ETag 的值可以用于检查 Object 的内容是否发生变化。 | String |
    | LastModified     | 返回文件最后修改时间,GMT格式                         | String |
    
    
    ## 实际案例
    若需要跨帐号复制则需要先设置被复制帐号的acl,允许目标帐号读取被复制对象,了解acl详细请参见 [PutObjectAcl](https://www.qcloud.com/document/product/436/7748) 章节。
    

    PUT /222.txt HTTP/1.1
    Host: bucket1-1252443703.cn-north.myqcloud.com
    Connection: keep-alive Accept-Encoding: gzip, deflate Accept: /
    User-Agent: python-requests/2.12.4
    Authorization: q-sign-algorithm=sha1&q-ak=AKID15IsskiBQKTZbAo6WhgcBqVls9SmuG00&q-sign-time=1480932292;1981012292&q-key-time=1480932292;1981012292&q-url-param-list=&q-header-list=host&q-signature=eacefe8e2a0dc8a18741d9a29707b1dfa5aa47cc
    x-cos-copy-source: bucket2-1252443704.cn-north.myqcloud.com/1.txt
    Content-Length: 0

    
    ### 响应
    

    HTTP/1.1 200 OK
    Content-Type: application/xml
    Content-Length: 133
    Connection: keep-alive Date: Fri, 04 Aug 2017 02:41:45 GMT
    Server: tencent-cos
    x-cos-request-id: NTk4M2RlZTlfZDRiMDM1MGFfYTA1ZV8xMzNlYw==

    <CopyObjectResult>
    <ETag>"ba82b57cfdfda8bd17ad4e5879ebb4fe"</ETag>
    <LastModified>2017-08-04T02:41:45</LastModified>
    </CopyObjectResult>

    相关文章

      网友评论

          本文标题:Put Object Copy文档

          本文链接:https://www.haomeiwen.com/subject/gdaddxtx.html