• 文档
  • 控制台
  • 登录
  • 立即注册
    目前不支持用户自主注册,如需注册账号,请联系400-080-1100
对象存储OSS API参考手册
最近更新时间:2023-04-16 17:00:00

5 对象操作接口描述

5.1 批量删除对象(DeleteMultipleObjects)

批量删除对象特性用于将一个桶内的部分对象一次性删除,删除后不可恢复。批量删除对象要求返回结果里包含每个对象的删除结果。删除成功的对象不能进行 List 和 Get操作,批量删除对象使用同步删除对象的方式,每个对象的删除结果返回给请求用户,一次最多删除 1000 个对象。批量删除对象支持两种响应方式:verbose和 quiet。Verbose 是指在返回响应时,不管对象是否删除成功都将删除结果包含在 XML 响应里;quiet 是指在返回响应时,只返回删除失败的对象结果,没有返回的认为删除成功。默认使用 verbose 模式,如果用户在请求消息体中指定 quiet 模式的话,使用 quiet 模式。批量删除的请求消息头中必须包含 Content-MD5 以及 Content-Length,用以保证请求的消息体在服务端检测到网络传输如果有错,则可以检测出来。


5.1.1 请求消息

        1. 请求消息样式

POST /bucketname?delete HTTP/1.1 Host: CecCloud.com

Authorization: Signature Content-MD5: MD5 Content-Length: length

<?xml version="1.0" encoding="UTF-8"?>

<Delete>

<Quiet>true</Quiet>

<Object>

<Key>Key1</Key>

</Object>

<Object>

<Key>Key2</Key>

</Object>

</Delete>

2. 请求消息参数

无。

3. 请求消息头

该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。

表5-1 请求消息头列表

        image.png

4. 请求消息元素

该请求通过在请求消息的消息元素中指定要批量删除的对象列表,元素的具体含义如表 5-2 所示。

表5-2 请求消息元素列表

        image.png


5.1.2 响应消息

       1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id Date: date

Content-Type: type

Content-Length: length

<?xml version="1.0" encoding="UTF-8">

<DeleteResult xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Deleted>

<Key>Key1</Key>

</Deleted>

<Error>

<Key>Key2</Key>

<Code>InternalError</Code>

<Message>Internal Error</Message>

</Error>

</DeleteResult>

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。

3. 响应消息元素

该请求的响应通过消息元素返回删除的结果,元素的具体意义如表 5-3 中所示

表5-3 响应消息元素列表

         image.png

         image.png


4. 错误响应消息

错误已经包含在表 3-2 中.


5.1.3 实例

        1. 请求实例

POST /bucket?delete HTTP/1.1 Host: CecCloud.com

Authorization: AWS BF6C09F302931425E9A7:wQ1Tp3rD7kaUCsYfPKxOIN7NoSA= 

Content-MD5: 367CB63A2F283044981285491015079

Content-Length: 135

<?xml version="1.0" encoding="UTF-8"?>

<Delete>

<Quiet>true</Quiet>

<Object>

<Key>Key1</Key>

</Object>

<Object>

<Key>Key2</Key>

</Object>

</Delete>

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 996c76696e6727732072657175657374 Date: Mon, 1 Nov 2018 

20:34:56 GMT

Content-Type: application/xml Content-Length: 10485760

<?xml version="1.0" encoding="UTF-8"?>

<DeleteResult xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Deleted>

<Key>Key1</Key>

</Deleted>

<Error>

<Key>Key2</Key>

<Code>InternalError</Code>

<Message>Internal Error</Message>

</Error>

</DeleteResult>

3. 请求实例(不带版本删除多版本开启的桶中对象实例)

POST /bucket?delete HTTP/1.1 Host: CecCloud.com

Date: Tue, 14 Jan 2018 12:10:09 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:HLq5AmI/Zlz1PPsXdk6pIHuNaCM= 

Content-MD5: uj2BQLIgDcegTcWHwEGoiA==

Content-Length: 64

<Delete>

<Object>

<Key>object</Key>

</Object>

</Delete>

4. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB780000014390A8AA7D4763

Content-Type: application/xml Date: Tue, 14 Jan 2018 12:10:09 GMT

Content-Length: 280

<DeleteResult xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Deleted>

<Key>object</Key>

<DeleteMarker>true</DeleteMarker>

<DeleteMarkerVersionId>AAABQ5Coqqzc0vycq3gAAAAZVURTRkha</DeleteMar

kerVersionId>

</Deleted>

</DeleteResult>

5. 请求实例(带版本删除桶中对象实例)

POST /bucket?delete HTTP/1.1

Date: Tue, 14 Jan 2018 12:19:57 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:eTmW0xEkSYrfqOSjZUV7zS+Ap5Y= 

Content-MD5: YDYt+eVo7S5tnBHaHOylGA==

Content-Length: 124

<Delete>

<Object>

<Key>object</Key>

<VersionId>AAABQ4-glIvc0vycq3gAAAAVVURTRkha</VersionId>

</Object>

</Delete>

6. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB780000014390B1A5974C2C

Content-Type: application/xml Date: Tue, 14 Jan 2018 12:19:58 GMT

Content-Length: 223

<?xml version="1.0" encoding="UTF-8">

<DeleteResult xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Deleted>

<Key>object</Key>

<VersionId>AAABQ4-glIvc0vycq3gAAAAVVURTRkha</VersionId>

</Deleted>

</DeleteResult>

7. 请求实例(带版本删除桶中的删除标记实例)

POST /bucket?delete HTTP/1.1

Date: Wed, 15 Jan 2018 02:03:40 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:N/UdjEab/8H5Llgw1HUpTd21wc4= 

Content-MD5: n9LlSFB87vGiGDqDKLXPLA==

Content-Length: 124

<Delete>

<Object>

<Key>object</Key>

<VersionId>AAABQ49lNT_c0vycq3gAAAAOVURTRkha</VersionId>

</Object>

</Delete>

8. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB780000014393A3C5CEDE66

Content-Type: application/xml Date: Wed, 15 Jan 2018 02:03:40 GMT

Content-Length: 335

<?xml version="1.0" encoding="UTF-8">

<DeleteResult xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Deleted>

<Key>object</Key>

<VersionId>AAABQ49lNT_c0vycq3gAAAAOVURTRkha</VersionId>

<DeleteMarker>true</DeleteMarker>

<DeleteMarkerVersionId>AAABQ49lNT_c0vycq3gAAAAOVURTRkha</DeleteMar

kerVersionId>

</Deleted>

</DeleteResult>


5.2 删除对象( DeleteObject)

拥有对象所在桶的写权限的用户可以执行删除对象的操作。如果要删除的对象不存在,则仍然返回成功信息。当桶的多版本状态是开启时,不指定版本删除对象将产生一个带唯一版本号的删除标记,并不删除对象;当桶的多版本状态是暂停时,不指定版本删除对象将产生一个版本号为 null的删除标记,并删除版本号为 null 的对象(如果该对象存在)。如果要删除指定版本的对象,请求可携带 versionId 消息参数,暂不支持多版本。


5.2.1 请求消息

1. 请求消息样式

DELETE /bucket/ObjectName HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

请求参数说明如表 5-4 所示。

   表5-4 请求消息参数列表

   image.png

3. 请求消息头

该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。

4. 请求消息元素

无。


5.2.2 响应消息

      1. 响应消息样式

注意:删除成功返回的状态码是 204,不是 200。

HTTP/1.1 status_code

x-amz-request-id: request id Date: date

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。除公共响应消息头之外,还可能使用如下表 5-5 中的消息头。

表5-5 响应消息头列表

         image.png

           image.png

3. 响应消息元素

无。

4. 错误响应消息

无特殊错误,所有错误已经包含在表 3-2 中。


5.2.3 实例

       1. 请求实例

DELETE /example/test HTTP/1.1 

Host: CecCloud.com

Accept: */*

Date: Sat, 03 Dec 2018 08:38:16 +0000

Authorization: AWS BF6C09F302931425E9A7:wQ1Tp3rD7kaUCsYfPKxOIN7NoSA=

2. 响应实例

HTTP/1.1 204 No Content

x-amz-request-id: 001B21A61C6C000001340312E226528D

Content-Type: text/xml

Date: Sat, 03 Dec 2018 08:38:18 GMT

3. 请求实例(删除指定版本对象实例)

DELETE /example/object?versionId=AAABQ4-YOzfc0vycq3gAAAAUVURTRkha 

HTTP/1.1 

Host: CecCloud.com

Accept: */*

Date: Tue, 14 Jan 2018 07:12:57 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:DxZpQ520WCv/yMgrUjBemFORuN0=

4. 响应实例

HTTP/1.1 204 No Content

x-amz-request-id: DCD2FC9CAB78000001438F98937AB673

Content-Type: text/xml

x-amz-version-id: AAABQ4-YOzfc0vycq3gAAAAUVURTRkha Date: Tue, 14 Jan 2018 

07:12:57 GMT

默认值:无。

5. 请求实例(在多版本开启的桶中删除已被标记删除的对象实例)

DELETE /example/object HTTP/1.1 Host: CecCloud.com

Date: Tue, 14 Jan 2018 06:16:51 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:VlzVUv3z3WOuSyu2l8NzVsOXY0U=

6. 响应实例

HTTP/1.1 204 No Content

x-amz-request-id: DCD2FC9CAB78000001438F65352A9AF5

Content-Type: text/xml

x-amz-delete-marker: true

x-amz-version-id: AAABQ49lNT_c0vycq3gAAAAOVURTRkha Date: Tue, 14 Jan 2018 

06:16:51 GMT


5.3 获取对象ACL(GetObjectACL)多版本

用户执行获取对象 ACL 的操作,返回信息包含指定对象的权限控制列表信息。用户必须拥有对指定对象读 ACP(access control policy)的权限,才能执行获取对象 ACL 的操作。默认情况下,获取最新版本的对象ACL。如果最新版本的对象是删除标记,则返回404。如果要获取指定版本的对象 ACL,请求可携带 versionId 消息参数。


5.3.1 请求消息

       1. 请求消息样式

GET /bucketname/ObjectName?ACLACLACLACLACL HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

该请求需要在请求消息参数中指定是在获取对象 ACL,参数意义如表 5-6 所示。

表5-6 请求消息参数列表

         image.png

1. 请求消息样式

GET /bucketname/ObjectName?ACLACLACLACLACL HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

该请求需要在请求消息参数中指定是在获取对象 ACL,参数意义如表 5-6 所示。

表5-6 请求消息参数列表


5.3.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id Date: date

Content-Length: length Content-Type: type

<?xml version="1.0" encoding="UTF-8">

<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Owner>

<ID>id</ID>

<DisplayName>name</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:type="CanonicalUser">

<ID>id</ID>

<DisplayName>name</DisplayName>

</Grantee>

<Permission>permission</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。除公共响应消息头之外,还可能使用如下表 5-7 中的消息头。

表5-7 响应消息头列表

        image.png

3. 响应消息元素

该请求的响应消息中通过消息元素返回对象的 ACL 信息,元素的具体意义如表 5-8 所示。

表5-8 响应消息元素列表

         image.png

           image.png

4. 错误响应消息

无特殊错误,所有错误已经包含在表 3-2 中。


5.3.3 实例

       1. 请求实例

GET /example/test?ACLACLACLACLACL HTTP/1.1 Accept-Encoding: gzip,deflate

Authorization: AWS 04RZT432N80TGDF2Y2G2:pkRtbbpzetVSUoTralXIkRLWsCQ= 

Date: Mon, 27 Sep 2018 01:51:25 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 5FBCAEB7BB9A1AD0FF1285552415340

Content-Type: application/xml Date: Mon, 27 Sep 2018 01:53:35 GMT

Content-Length: 560

<?xml version="1.0" encoding="UTF-8">

<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Owner>

<ID>bcaf1ffd86f41caff1a493dc2ad8c2c281e37522a640e161ca5fb16fd08103

4f</ID>

<DisplayName>apple</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee xmlns:xsi="http:// www.w3.org/2001/XMLSchemainstance" xsi:type="CanonicalUser">

<ID>bcaf1ffd86f41caff1a493dc2ad81e37522a640e161ca5fb16fd081

034f</ID>

<DisplayName>apple</DisplayName>

</Grantee>

<Permission>FULL_CONTROL</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>

3. 请求实例(获取指定版本的对象 ACL)

GET /example/object?ACLACLACLACLACL&versionId=AAABQ4-

glIvc0vycq3gAAAAVVURTRkha HTTP/1.1 Accept-Encoding: gzip,deflate

Authorization: AWS C9590CEB8EC051BDEC9D:IsCyQSOY8rbyp8E6W/ftU6GFcGg= 

Date: Tue, 14 Jan 2018 07:32:21 +0000

Host: CecCloud.com

4. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB78000001438FAA5667BFF4

Content-Type: application/xml

x-amz-version-id: AAABQ4-glIvc0vycq3gAAAAVVURTRkha Date: Tue, 14 Jan 2018 

07:32:21 GMT

Content-Length: 494

<?xml version="1.0" encoding="UTF-8">

<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2015-06-30/">

<Owner>

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:type="CanonicalUser">

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Grantee>

<Permission>FULL_CONTROL</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>


5.4 获取对象元数据(HeadObject)

拥有对象读权限的用户可以执行 HEAD 操作命令获取对象元数据,返回信息包含对象的元数据信息。默认情况下,获取的是最新版本的对象元数据。如果最新版本的对象是删除标记,则返回 404。如果要获取指定版本的对象元数据,请求可携带 versionId 消息参数。


5.4.1 请求消息

        1. 请求消息样式

HEAD /bucket/ObjectName HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

表5-9 请求消息参数列表

         image.png

        3. 请求消息头

         该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。

另外该请求可以使用附加的消息头,具体如表 5-10 所示。

表5-10 请求消息头列表

         image.png

         image.png

4. 请求消息元素

无。


5.4.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id Content-Type: type

Date: date

Content-Length: length Etag: etag

Last-Modified: time

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。

除公共响应消息头之外,还可能使用如下表 5-11 中的消息头。

表5-11 响应消息头列表

        image.png

3. 响应消息元素

无。

4. 错误响应消息

无特殊错误;所有错误已经包含在表 3-2 中


5.4.3 实例

       1. 请求实例

HEAD /example/test HTTP/1.1 Host: CecCloud.com

Date: Sat, 03 Dec 2018 09:17:57 +0000

Authorization: AWS BF6C09F302931425E9A7:++6NkzwVhw4qccNfIqf4G2vMggg=

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C0000013403373811529D

ETag: "507e3fff69b69bf57d303e807448560b" Last-Modified: Sat, 03 Dec 2018 

08:47:50 GMT

Content-Length: 30

Content-Type: binary/octet-stream Date: Sat, 03 Dec 2018 09:17:57 GMT

3. 请求实例(获取指定版本的对象元数据)

HEAD /bucket/object?versionId=AAABQ4-glIvc0vycq3gAAAAVVURTRkha HTTP/1.1 

Host: CecCloud.com

Accept: */*

Date: Tue, 14 Jan 2018 07:22:17 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:CTunmEJMuOBqUa4zfJNz6zxkjBE=

4. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB78000001438FA11E6CBB07

Accept-Ranges: bytes

ETag: "ba1f2511fc30423bdbb183fe33f3dd0f" Last-Modified: Tue, 14 Jan 2018 

07:21:42 GMT

Content-Length: 4

x-amz-version-id: AAABQ4-glIvc0vycq3gAAAAVVURTRkha Content-Type: 

binary/octet-stream

Date: Tue, 14 Jan 2018 07:22:17 GMT

5. 响应实例(获取对象过期时间)

HTTP/1.1 200 OK

x-amz-request-id: 0EFF61CCE3F24A26 Date: Mon, 17 Dec 2018 02:26:39 GMT

Last-Modified: Mon, 17 Dec 2018 02:14:10 GMT

x-amz-expiration: expiry-date="Fri, 21 Dec 2018 00:00:00 GMT", ruleid="Rule for testfile.txt"

ETag: "54b0c58c7ce9f2a8b551351102ee0938" Accept-Ranges: bytes

Content-Type: text/plain Content-Length: 14


5.5 PUT上传对象(PutObject)

上传对象操作是指在指定的桶内增加一个对象,执行该操作需要用户拥有桶的写权限。如果在指定的桶内已经有相同的对象键值的对象,用户上传的新对象会覆盖原来的对象;为了确保数据在传输过程中没有遭到破坏,用户可以在请求消息头中加入 Content-MD5 参数。在这种情况下,系统收到上传的对象后,会对对象进行 MD5 校验,如果不一致则返回出错信息。用户还可以在上传对象时指定 x-amz-ACL 参数,设置对象的权限控制策略。用户在系统中创建了桶之后,可以采用 PUT 操作的方式将对象上传到桶中。如果桶的多版本状态是开启的,系统会自动为对象生成一个唯一的版本号,并且会在响应报头 x-amz- version-id返回该版本号。如果桶的多版本状态是暂停的,则对象的版本号为 null。


5.5.1 请求消息

        1. 请求消息样式

PUT /bucket/Object HTTP/1.1 Host: CecCloud.com

Content-Type: type Content-Length: length

Authorization: authorization Date: date

<Optional Additional Header>

<object Content>

2. 请求消息参数

无。

3. 请求消息头

该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。

另外该请求可以使用附加的消息头,具体如表 5-12 所示。

表5-12 请求消息头列表

        image.png

     image.png

       image.png

通过 x-amz-grant*消息头实现精细的权限控制,使用 type=value 格式.其中 type 可以是

emailAddress、id、uri 三种其中的一种。

例如:通过 emailAddress 授权获取对象列表权限。

x-amz-grantread:emailAddress=mailto:xyz@amazon.com@mailto:xyz@amazon.com",emailAdd

ress="mailto:abc@amazon.com"

例如:通过 id 授权获取对象列表权限

x-amz-grant-read: id="user1", id="user2"

4. 请求消息元素


5.5.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id Date: date

Content-Length: length Content-Type: type

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。

除公共响应消息头之外,还可能使用如下表 5-13 中的消息头。

表5-13 响应消息头

        image.png

3. 响应消息元素

无。

4. 错误响应消息

无特殊错误,所有错误已经包含在表 3-2 中。


5.5.3 实例

        1. 请求实例

PUT /bucket/object HTTP/1.1 Host: CecCloud.com

Accept: */*

Date: Sat, 03 Dec 2018 07:12:31 +0000

Authorization: AWS BF6C09F302931425E9A7:KUxrlwKGWYpUOTgwNxIHALsRdT4= xamz-meta-key: value

Content-Length: 256

12345678901234567890123456789012345678901234567890123456789012345678901

234567890

12345678901234567890123456789012345678901234567890123456789012345678901

234567890

12345678901234567890123456789012345678901234567890123456789012345678901

234567890

1234567890123456

2. 请求实例(重定向)

PUT /bucket/object HTTP/1.1 Host: CecCloud.com

Accept: */*

Date: Sat, 03 Dec 2018 07:12:31 +0000

Authorization: AWS BF6C09F302931425E9A7:KUxrlwKGWYpUOTgwNxIHALsRdT4= xamz-meta-key: value

Content-Length: 256

x-amz-website-redirect-location: www.CecCloud.com

12345678901234567890123456789012345678901234567890123456789012345678901

234567890

12345678901234567890123456789012345678901234567890123456789012345678901

234567890

12345678901234567890123456789012345678901234567890123456789012345678901

234567890

1234567890123456

3. 响应实例(未开启多版本)

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C0010013402C4616D5285

Content-Type: text/xml

ETag: "33bee59f4c1f859a7aedd36779b321cf" Date: Sat, 03 Dec 2018 07:12:31 

GMT

Content-Length: 0

4. 响应实例(开启多版本)

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C0010013402C4616D5285

Content-Type: text/xml

ETag: "33bee59f4c1f859a7aedd36779b321cf"

x-amz-version-id: AAABQ4q2M9_c0vycq3gAAAAAVURTRkha Date: Sat, 03 Dec 2018 

07:12:31 GMT

Content-Length: 0

5. 响应实例(暂停多版本)

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C0010013402C4616D5285

Content-Type: text/xml

ETag: "33bee59f4c1f859a7aedd36779b321cf" x-amz-version-id: null

Date: Sat, 03 Dec 2018 07:12:31 GMT

Content-Length: 0


5.6 设置对象ACL(PutObjectACL)

     对象存储系统支持对对象的操作进行权限控制。默认情况下,只有对象的创建者才有该对象的读写权 限。用户也可以设置其他的访问策略,比如对一个对象可以设置公共访问策略,允许所有人对其都有读权限。用户在上传对象时可以设置权限控制策略,也可以通过 ACL 操作 API 接口对已存在的对象更改或者获取 ACL(access control list)。本节将介绍如何更改对象 ACL,改变对象的访问权限。默认情况下,更改的是最新版本的对象 ACL。要设置指定版本的对象 ACL,请求可以带参数 versionId。


5.6.1 请求消息

      1. 请求消息样式

PUT /bucket/Object?ACLACLACLACLACL HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

<AccessControlPolicy>

<Owner>

<ID>ID</ID>

<DisplayName>displayname</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:type="CanonicalUser">grantee</Grantee>

<Permission>permission</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>

2. 请求消息参数

表5-14 请求消息参数列表

        image.png

3. 请求消息头

该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。

ACL 相关消息头可参考其他章节 ACL 部分内容,不在赘述

4. 请求消息元素

表5-15 请求消息元素列表

       image.png


5.6.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id Content-Type: type

Date: date

Content-Length: length

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。

除公共响应消息头之外,还可能使用如下表 5-16 中的消息头。

表5-16 响应消息头列表

        image.png

3. 响应消息元素

无。

4. 错误响应消息

无特殊错误;所有错误已经包含在表 3-2 中。


5.6.3 实例

      1. 请求实例

PUT /bucket/object?ACLACLACLACLACL HTTP/1.1 Accept-Encoding: 

gzip,deflate Content-Type: application/xml

Authorization: AWS 04RZT432N80TGDF2Y2G2:vktmLfCDhy0XbJw2T2mhNM9PZ70= 

Date: Mon, 27 Sep 2018 02:00:40 GMT

Host: CecCloud.com Content-Length: 768

<AccessControlPolicy>

<Owner>

<ID>user1</ID>

<DisplayName>user1</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:type="CanonicalUser">

<ID>user2</ID>

<DisplayName>user2</DisplayName>

</Grantee>

<Permission>READ</Permission>

</Grant>

<Grant>

<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:type="CanonicalUser">

<ID>user3</ID>

<DisplayName>user3</DisplayName>

</Grantee>

<Permission>WRITE</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C00000134031BE8005293

Content-Type: application/xml Date: Sat, 03 Dec 2018 08:48:07 GMT

Content-Length: 254


5.7 复制对象

为已存储在分布式对象存储系统内的对象创建一个拷贝。通过指定 x-amz-copy-source 来将源对象拷贝到目标桶内。该操作只能支持 5GB 以下对象。复制对象时,源对象的自定义属性默认保留到目标对象中,目标对象的 ACL 默认为 private。需要有源对象的 READ 权限和目标桶的 WRITE 权限才能执行此操作。默认情况下,对源对象的当前版本执行拷贝操作。若当前版本为 delete marker,则认为该源对象已被删除;若要拷贝指定的对象版本,需采用 versionId 指定版本号。若目标桶启用多版本,则会为目标对象生成唯一的版本号,并通过响应消息头 x-amz-version-id response 返回该对象版本号;若目标桶为启用多版本或暂停多版本,则目标对象版本号为 null。


5.7.1 请求消息样式

 PUT /destinationbucket/objectname HTTP/1.1

Host: obs.chinamobile.com

Date: date

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

Authorization: signatureValue 

1. 请求参数

无。

2. 消息头附加域

        image.png

        image.png

3. 请求体参数

无。


5.7.2 响应消息


1. 响应消息头

 image.png

          image.png

      2. 响应消息体参数

      image.png


5.7.3 实例

        1. 请求实例

PUT /my-second-image.jpg HTTP/1.1

Host: obs.chinamobile.com

Date: Wed, 28 Oct 2009 22:32:00 GMT

x-amz-copy-source: /bucket/my-image.jpg 

Authorization: signatureValue

2. 响应实例

启用多版本,响应消息头中会带有 x-amz-version-id。

HTTP/1.1 200 OK

x-amz-copy-source-versionid:3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

x-amz-version-id: QUpfdndhfd8438MNFDN93jdnJFkdmqnh893

Date: Wed, 28 Oct 2009 22:32:00 GMT

Server: CMCCObsServer

<CopyObjectResult>

<LastModified>2009-10-28T22:32:00</LastModified>

<ETag>"9b2cf535f27731c974343645a3985328"</ETag>

</CopyObjectResult>

3. 请求消息(拷贝指定版本的对象)

PUT /my-second-image.jpg HTTP/1.1

Host: obs.chinamobile.com

Date: Wed, 28 Oct 2009 22:32:00 GMT

x-amz-copy-source: /bucket/myimage.jpg ?versionId=3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY

Authorization: signatureValue

4. 消息响应

• 启用多版本,响应消息头中会带有 x-amz-version-id。

HTTP/1.1 200 OK

x-amz-copy-source-version-id: 09df8234529fjs0dfi0w52935029wefdj

x-amz-version-id: QUpfdndhfd8438MNFDN93jdnJFkdmqnh893

Date: Wed, 28 Oct 2009 22:32:00 GMT

Server: CMCCObsServer

<CopyObjectResult>

<LastModified>2009-10-28T22:32:00</LastModified>

<ETag>"9b2cf535f27731c974343645a3985328"</ETag>

</CopyObjectResult>

• 未启用多版本、或暂停多版本功能,响应消息头中不会带 x-amz-version-id。

HTTP/1.1 200 OK

x-amz-copy-source-version-id: 09df8234529fjs0dfi0w52935029wefdj

Date: Wed, 28 Oct 2009 22:32:00 GMT

Server: CMCCObsServer

<CopyObjectResult>

<LastModified>2009-10-28T22:32:00</LastModified>

<ETag>"9b2cf535f27731c974343645a3985328"</ETag>

</CopyObjectResult>


5.8 获取对象(GetObject)

GET 操作可从对象存储获取对象。用户必须拥有对指定对象读权限,才能执行获取对象的操作。


5.8.1 请求消息

     1. 请求消息样式

GET 

/bucketname/ObjectName

HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。

4. 请求消息元素

无。


5.8.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: requestid 

Date: date

Etag: tag

Content-Length:length

Content-Type: type

[10240 bytes of object data]

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。

除公共响应消息头之外,还可能使用如下表中的消息头。

表5-17 响应消息头列表

        image.png

3. 响应消息元素

该请求的响应消息中通过消息元素返回对象的 ACL 信息,元素的具体意义如表 5-8 所示。

4. 错误响应消息

无特殊错误,所有错误已经包含在表 3-2 中。


5.8.3 实例

      1. 请求实例

GET /example/test

HTTP/1.1 Accept-Encoding: gzip,deflate

Authorization: AWS 04RZT432N80TGDF2Y2G2:pkRtbbpzetVSUoTralXIkRLWsCQ= 

Date: Mon, 27 Sep 2018 01:51:25 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 5FBCAEB7BB9A1AD0FF1285552415340

Content-Type: application/xml Date: Mon, 27 Sep 2018 01:53:35 GMT

Content-Length: 560

[560 bytes of object data]


5.9 追加上传对象(AppendObject)

以追加写的方式上传文件,通过 AppendObject 操作上传的 Object 类型为 Appendable。

5.9.1 请求消息

1. 请求消息样式

POST /Bucket/Object?append&position=0

HTTP/1.1 

Host: CecCloud.com

Date: Mon, 1 Nov 2018 20:34:56 GMT

Authorization: auth

2. 请求消息参数

表5-18 请求消息参数列表

        image.png

3. 请求消息头

该请求使用公共消息头,具体请参考 2.1 公共请求消息头章节。另外该请求可以使用附加的消息头,

具体如表 5-12 所示。

4. 请求消息元素


5.9.2 响应消息

        1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id

x-oss-next-append-position: 789

Date: date

Content-Length: length 

Content-Type: type

2. 响应消息头

该请求的响应消息使用公共消息头,具体请参考 2.2 公共响应消息头章节。

表5-19 响应消息头

        image.png

3. 响应消息元素

无。

4. 错误响应消息

无特殊错误,所有错误已经包含在表 3-2 中


5.9.3 实例

       1. 请求实例

POST /bucket/object?append&position=0

HTTP/1.1 Host: CecCloud.com

Accept: */*

Date: Sat, 03 Dec 2018 07:12:31 +0000

x-amz-acl: public-read

X-Amz-Content-Sha256: 

beaead3198f7da1e70d03ab969765e0821b24fc913697e929e726aeaebf0eba3

X-Amz-Date: 20220923T074819Z

Authorization: AWS4-HMAC-SHA256 

Credential=lS4KD6QBe8egCK5fDV2r/20220923/defult/s3/ aws4_request, 

SignedHeaders=host;x-amz-content-sha256; x-amz-date, 

Signature=5a64764414a0a125aebce942f0ad3db5e4d2d5b148bc8ee52f5c1a07b5691

x-amz-meta-key: value

Content-Length: 10

1234567890

2. 响应实例(追加成功)

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C0010013402C4616D5285

ETag: "33bee59f4c1f859a7aedd36779b321cf" 

X-Oss-Next-Append-Position: 10

Date: Sat, 03 Dec 2018 07:12:31 GMT

Content-Length: 0

3. 响应实例(追加失败)

HTTP/1.1 409 Conflict

x-amz-request-id: 001B21A61C6C0010013402C4616D5285

Content-Type: text/xml

X-Oss-Next-Append-Position: 10

Date: Sat, 03 Dec 2018 07:12:31 GMT

Content-Length: 228

<?xml version="1.0" encoding="UTF-8"?>

<Error>

<Code>PositionNotEqualToLength</Code>

<BucketName>test-1</BucketName>

<RequestId>tx0000000000000019b09e3-00632d65ee-6c530-

pre019</RequestId>

<HostId>6c530-pre019-default</HostId>

</Error>


意见反馈

文档内容是否对您有帮助?

如您有其他疑问,您也可以通过在线客服来与我们联系探讨 在线客服

联系我们
回到顶部