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

4 桶操作接口描述

4.1 创建桶(PutBucket)

创建桶是按照用户指定的桶名创建一个新桶。

4.1.1 请求消息

       1. 请求消息样式

PUT /bucketname HTTP/1.1 Host: CecCloud.com Content-Length: 0

Date: date

Authorization: authorization

<Optional Additional Header>

2. 请求消息参数

无。

3. 请求消息头

该操作消息头与普通请求一样,请参见 2.1 公共请求消息头章节,但可以带附加消息头,附加请求

消息头如表 4-1 示。

表4-1 附加请求消息头

       image.png

通过 x-amz-grant*消息头实现精细的权限控制,使用 type=value 格式,其中 type 可以是emailAddress、id、uri 三种其中的一种。

例如:通过 emailAddress 授权获取对象列表权限x-amz-grant-read: emailAddress="xyz@amazon.com",emailAddress="abc@amazon.com"

例如:通过 id 授权获取对象列表权限x-amz-grant-read: id="user1", id="user2"

4. 请求消息元素

创建桶时可以通过以下 XML 元素配置桶的区域位置信息。

表4-2 区域位置信息元素表

        image.png

4.1.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id 

Location: location

Date: date Content-Length: 0

2. 响应消息头

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

3. 响应消息元素

无。

4. 错误响应消息

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


4.1.3 实例

       1. 请求实例

PUT /example HTTP/1.1 Host: CecCloud.com

Date: Sat, 03 Dec 2018 06:31:58 +0000

Authorization: AWS BF6C09F302931425E9A7:QBaO+tS/76QYHVnUoxvf9EPH/3o= 

Content-Length: 0

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 001B21A61C6C00000134029F41D1527F 

Date: Sat, 03 Dec 2018 06:31:58 GMT

Content-Length: 0

3. 请求实例(使用 ACL 设置权限)

PUT /bucket HTTP/1.1 Host: CecCloud.com Content-Length: 0

x-amz-ACL: private

Date: Wed, 01 Mar 2018 12:00:00 GMT

Authorization: authorization string

4. 请求实例(精细权限设置)

PUT /bucket HTTP/1.1 Host: CecCloud.com

Date: Sat, 07 Apr 2018 00:54:40 GMT

Authorization: authorization string

x-amz-grant-write: emailAddress="xyz@amazon.com", 

emailAddress=abc@amazon.com


4.2 删除桶(DeleteBucket)

        删除桶操作用于删除用户指定的桶。只有桶的所有者或者拥有桶的删除桶 policy 权限的用户可以执行删除桶的操作,要删除的桶必须是空桶。如果桶中有对象或者有多段任务则认为桶不为空,可以使用列举桶内对象和列举出多段上传任务接口来确认桶是否为空。


4.2.1 请求消息

       1. 请求消息参数

无。

2. 请求消息头

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

3. 请求消息样式

DELETE /bucketname HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

4. 请求消息元素

无。


4.2.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

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

2. 响应消息头

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

3. 响应消息元素

无。

4. 错误响应消息

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


4.2.3 实例

       1. 请求实例

DELETE /example HTTP/1.1 Host: CecCloud.com

Date: Sat, 03 Dec 2018 07:07:35 +0000

Authorization: authorization string

2. 响应实例

HTTP/1.1 204 No Content

x-amz-request-id: 001B21A61C6C0000013402BFDBA85281 Date: Sat, 03 Dec 2018 

07:07:38 GMT


4.3 获取桶列表(ListBuckets)

用户可以通过此请求查询自己创建的桶列表。

4.3.1 请求消息

1. 请求消息样式

GET / HTTP/1.1 Host:CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.3.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">

<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2015-06-

30/">

<Owner>

<ID>id</ID>

<DisplayName>name</DisplayName>

</Owner>

<Buckets>

<Bucket>

<Name>bucketName</Name>

<CreationDate>date</CreationDate>

<Location>Region</ Location >

</Bucket>

...

</Buckets>

</ListAllMyBucketsResult>

2. 响应消息头

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

3. 响应消息元素

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

         image.png

4. 错误响应消息

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


4.3.3 实例

       1. 请求实例

GET / HTTP/1.1

Authorization: authorization string Date: Sun, 26 Sep 2018 08:24:46 GMT

Host: CecCloud.com

2. 响应实例

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

<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01">

<Owner>

<ID>f41caff1a493dc2ad8c2c281e375</ID>

<DisplayName>testuser</DisplayName>

</Owner>

<Buckets>

<Bucket>

<Name>bucket01</Name>

<CreationDate>2018-09-26T03:10:23.211Z</CreationDate>

</Bucket>

<Bucket>

<Name>bucket02</Name>

<CreationDate>2018-09-20T12:05:46.187Z</CreationDate>

</Bucket>

<Bucket>

<Name>bucket03</Name>

<CreationDate>2018-09-26T08:25:13.059Z</CreationDate>

</Bucket>

</Buckets>

</ListAllMyBucketsResult>


4.4 获取桶 CORS 配置(GetBucketCors)

      获取指定桶的 CORS 配置信息。要正确执行此操作,需要确保执行者有 s3:GetBucketCORS 权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户


4.4.1 请求消息

1. 请求消息样式

GET /bucket?cors HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.4.2 响应消息

       1. 响应消息样式

HTTP/1.1 status_code

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

Content-Type: type Content-Length: length

<CORSConfiguration>

<CORSRule>

<AllowedOrigin>http://www.example.com</AllowedOrigin>

<AllowedMethod>GET</AllowedMethod>

<MaxAgeSeconds>3000</MaxAgeSec>

</CORSRule>

</CORSConfiguration>

2. 响应消息头

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

3. 响应消息元素

该响应中将桶的区域信息以消息元素的形式返回,元素的具体含义如表 4-4 所示。

表4-4 响应消息元素列表

         image.png

          image.png

         4. 错误响应消息

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


4.4.3 实例

        1. 请求实例

GET /bucket?cors HTTP/1.1

Authorization: AWS 04RZT432N80TGDF2Y2G2:JUtd9kkJFjbKbkP9f6T/tAxozYY= 

Date: Sun, 26 Sep 2018 09:16:00 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 367CB63A2F283044981285492719060

Content-Type: application/xml Date: Sun, 26 Sep 2018 09:18:36 GMT

Content-Length: 260

<CORSConfiguration>

<CORSRule>

<AllowedOrigin>*</AllowedOrigin>

<AllowedMethod>GET</AllowedMethod>

<AllowedMethod>PUT</AllowedMethod>

<AllowedMethod>POST</AllowedMethod>

<MaxAgeSeconds>3000</MaxAgeSec>

</CORSRule>

</CORSConfiguration>


4.5 删除桶CORS配置(DeleteBucketCors)

4.5.1 请求消息

       1. 请求消息样式

DELETE /bucket?cors HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

该请求使用公共的请求消息头,具体请参见 2.1 公共请求消息头章节.

4. 请求消息元素

无。


4.5.2 响应消息

        1. 响应消息样式

HTTP/1.1 status_code

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

2. 响应消息头

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

3. 响应消息元素

无。

4. 错误响应消息

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


4.5.3 实例

      1. 请求实例

DELETE /bucket?cors HTTP/1.1 Host: CecCloud.com

Date: Sat, 03 Dec 2018 07:07:35 +0000

Authorization: authorization string

2. 响应实例

HTTP/1.1 204 No Content

x-amz-request-id: 001B21A61C6C0000013402BFDBA85281 Date: Sat, 03 Dec 2018 

07:07:38 GMT


4.6 获取桶生命周期配置

获取该桶设置的生命周期配置信息。要正确执行此操作,需要确保执行者有 s3:GetLifecycleConfiguration 执行权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。


4.6.1 请求消息

1. 请求消息样式

GET /bucketname?lifecycle HTTP/1.1 Host: inspur.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.6.2 响应消息

       1. 响应消息样式

HTTP/1.1 200 OK

Date: Thu, 05 Sep 2018 10:09:36 GMT

x-amz-request-id: 90E2BA0A420C00000140ED9939AF099E

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

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

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

<Rule>

<ID>id</ID>

<Prefix>prefix</Prefix>

<Status>status</Status>

<Expiration>

<Date>date</Date>

</Expiration>

<NoncurrentVersionExpiration>

<NoncurrentDays>5</NoncurrentDays>

</NoncurrentVersionExpiration>

</Rule>

1. 响应消息样式

HTTP/1.1 200 OK

Date: Thu, 05 Sep 2018 10:09:36 GMT

x-amz-request-id: 90E2BA0A420C00000140ED9939AF099E

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

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

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

<Rule>

<ID>id</ID>

<Prefix>prefix</Prefix>

<Status>status</Status>

<Expiration>

<Date>date</Date>

</Expiration>

<NoncurrentVersionExpiration>

<NoncurrentDays>5</NoncurrentDays>

</NoncurrentVersionExpiration>

</Rule>

2. 响应消息头

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

3. 响应消息元素

该响应中将桶的生命周期信息以消息元素的形式返回,元素的具体含义如表 4-5 所示。

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

        image.png

        image.png

          image.png

4. 错误响应消息

可能的特殊错误如表 4-6 所示。

表4-6 错误响应消息列表

         image.png


4.6.3 实例

1. 请求实例

GET /bucketname?lifecycle HTTP/1.1 Host: inspur.com

Date: Thu, 05 Sep 2018 10:09:36 +0000

Authorization: AWS B9A70C60A39C4D551A16:oNFuFZV8JLUqxsaFPI1Gs/HPRKg=

2. 响应实例

HTTP/1.1 200 OK

Date: Thu, 05 Sep 2018 10:09:36 GMT

x-amz-request-id: 90E2BA0A420C00000140ED9939AF099E

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

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

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

<Rule>

<ID>delete-test/-1-day</ID>

<Prefix>test/</Prefix>

<Status>Enabled</Status>

<Expiration>

<Date>2018-07-12T00:00:00.000Z</Date>

</Expiration>

<NoncurrentVersionExpiration>

<NoncurrentDays>5</NoncurrentDays>

</NoncurrentVersionExpiration>

</Rule>


4.7 列举桶内对象(listObjects)

对桶拥有读权限的用户可以执行列举桶内对象(含多版本)的操作。如果用户在请求的 URI 里只指定了桶名,即 GET /BucketName,则返回信息中会包含桶内所有对象的描述信息(一次最多返回 1000 个对象信息);如果用户还指定了 prefix、marker、max-keys、delimiter、version-id-marker 参数中的一个或多个,则返回的对象列表将按照规定的语义返回指定的以字典序排列的对象。


4.7.1 请求消息

       1. 请求消息样式

GET /bucketname?versions HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

该请求可以通过带参数,列举出桶内的一部分对象(含多版本),参数的具体含义如表 4-7 所示。

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

         image.png

         image.png

3. 请求消息头

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

4. 请求消息元素

无。


4.7.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">

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

<Name>bucket</Name>

<Prefix/>

<KeyMarker/>

<VersionIdMarker/>

<NextKeyMarker>nextKeyMarker</NextKeyMarker>

<NextVersionIdMarker>nextVersionIdMarker</NextVersionIdMarker>

<MaxKeys>maxKeys</MaxKeys>

<IsTruncated>boolean</IsTruncated>

<Version>

<Key>object</Key>

<VersionId>versionId</VersionId>

<IsLatest>boolean</IsLatest>

<LastModified>date</LastModified>

<ETag>String</ETag>

<Size>size</Size>

<Owner>

<ID>ownerID</ID>

<DisplayName>name</DisplayName>

</Owner>

<StorageClass>storageClass</StorageClass>

</Version>

<DeleteMarker>

<Key>object</Key>

<VersionId>versionId</VersionId>

<IsLatest>boolean</IsLatest>

<LastModified>date</LastModified>

<Owner>

<ID>ownerID</ID>

<DisplayName>name</DisplayName>

</Owner>

</DeleteMarker>

</ListVersionsResult>

         2. 响应消息头

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

3. 响应消息元素

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

        image.png

        image.png

         image.png

           image.png

4. 错误响应消息

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


4.7.3 实例

       1. 请求实例

GET /bucket?versions HTTP/1.1 Host: CecCloud.com

Date: Thu, 16 Jan 2018 03:31:26 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:KfF0yCAt+LAE/AE0YTxQS7IzQ8U=

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB7800000143991A7DEECBF4

Content-Type: application/xml Date: Thu, 16 Jan 2018 03:31:26 GMT

Content-Length: 1275

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

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

<Name>bucket</Name>

<Prefix/>

<KeyMarker/>

<VersionIdMarker/>

<MaxKeys>1000</MaxKeys>

<IsTruncated>false</IsTruncated>

<DeleteMarker>

<Key>key0</Key>

<VersionId>AAABQ5kabBnc0vycq3gAAABCVURTRkha</VersionId>

<IsLatest>true</IsLatest>

<LastModified>2018-01-16T03:31:22.265Z</LastModified>

<Owner>

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Owner>

</DeleteMarker>

<Version>

<Key>key0</Key>

<VersionId>AAABQ5kZxWTc0vycq3gAAABBVURTRkha</VersionId>

<IsLatest>false</IsLatest>

<LastModified>2018-01-16T03:30:39.575Z</LastModified>

<ETag>"6b0e1cad9fd2eff22004e28aa8073420"</ETag>

<Size>80</Size>

<Owner>

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

</Version>

<Version>

<Key>suspend</Key>

<VersionId>null</VersionId>

<IsLatest>true</IsLatest>

<LastModified>2018-01-16T03:25:58.443Z</LastModified>

<ETag>"a65d3be0857de44e470e0c069e4b04e3"</ETag>

<Size>80</Size>

<Owner>

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

</Version>

</ListVersionsResult>

3. 请求实例(带参数 key-marker、version-id-marker 列举桶内对象)

GET/bucket?versions&key-marker=key0&version-idmarker=AAABQ5kabBnc0vycq3gAAABCVURTRkha HTTP/1.1 Host: CecCloud.com

Accept: */*

Date: Thu, 16 Jan 2018 04:48:20 +0000

Authorization: AWS C9590CEB8EC051BDEC9D:iw+nTJEMO5KLMoE66sqzkRF3ik0=

4. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB78000001439960E2F3F18A

Content-Type: application/xml

Date: Thu, 16 Jan 2018 04:48:20 GMT

Content-Length: 1051

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

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

<Name>bucket</Name>

<Prefix/>

<KeyMarker>key0</KeyMarker>

<VersionIdMarker>AAABQ5kabBnc0vycq3gAAABCVURTRkha</VersionIdMarker>

<MaxKeys>1000</MaxKeys>

<IsTruncated>false</IsTruncated>

<Version>

<Key>key0</Key>

<VersionId>AAABQ5kZxWTc0vycq3gAAABBVURTRkha</VersionId>

<IsLatest>false</IsLatest>

<LastModified>2018-01-16T03:30:39.575Z</LastModified>

<ETag>"6b0e1cad9fd2eff22004e28aa8073420"</ETag>

<Size>80</Size>

<Owner>

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

</Version>

<Version>

<Key>suspend</Key>

<VersionId>null</VersionId>

<IsLatest>true</IsLatest>

<LastModified>2018-01-16T03:25:58.443Z</LastModified>

<ETag>"a65d3be0857de44e470e0c069e4b04e3"</ETag>

<Size>80</Size>

<Owner>

<ID>DCD2FC9CAB78000001438EC051BD0002</ID>

<DisplayName>user</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

</Version>

</ListVersionsResult>


4.8 设置桶ACL(PutBucketACL)

对桶操作进行权限控制。默认情况下,只有桶的创建者才有该桶的读写权限。用户也可以设置其他的访问策略,比如对一个桶可以设置公共访问策略,允许所有人对其都有读权限。用户在创建桶时可以设置权限控制策略,也可以通过 ACL 操作 API 接口对已存在的桶更改或者获取 ACL(access control list)。


4.8.1 请求消息

1. 请求消息样式

PUT /bucketname?ACL HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization Content-Type: application/xml ContentLength: length

<AccessControlPolicy>

<Owner>

<ID>ID</ID>

<DisplayName>displayname</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee>grantee</Grantee>

<Permission>permission</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>

2. 请求消息参数

无。

3. 请求消息头

使用者可以使用 canned ACL 的方式来更改桶的 ACL,每一种 canned ACL 都有一套自己预先定义

好的被授权用户以及相应权限,通过 canned ACL 的方式授予访问权限,使用者必须添加以下的头

域并且指定 canned ACL 的值。

表4-9 请求消息头列表

        image.png

        image.png

通过 x-amz-grant*消息头实现精细的权限控制,使用 type=value 格式,其中 type 可以是emailAddress、id、uri 三种其中的一种。

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

x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress=abc@amazon.com。

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

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

4. 请求消息元素

更改桶的 ACL 请求也可以在消息体中带上 ACL 信息,元素的具体含义如表 4-10 所示。

注意:如果使用请求消息体来设置 ACL,则不能在请求消息头中设置 ACL。

表4-10 请求消息元素列表

       image.png

     image.png


4.8.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

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

Content-Length: length

2. 响应消息头

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

3. 响应消息元素

无。

4. 错误响应消息

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


4.8.3 实例

      1. 请求实例:通过请求的消息体设置桶的 ACL

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

Content-Type: application/xml

Authorization: AWS 04RZT432N80TGDF2Y2G2:9uNLINAQ7IOIrD9OnCpDfY2R6nU= 

Date: Mon, 27 Sep 2018 01:37:17 GMT

Host: CecCloud.com Content-Length: 598

<AccessControlPolicy>

<Owner>

<ID>bcaf1ffd86f41caff1a493dc2ad8c2c2</ID>

<DisplayName>user</DisplayName>

</Owner>

<AccessControlList>

<Grant>

<Grantee xsi:type="CanonicalUser" 

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

<ID>bcaf1ffd86f41caff1a493dc2ad8c2c2</ID>

<DisplayName>user</DisplayName>

</Grantee>

<Permission>READ</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>

2. 请求实例:通过请求的消息头域设置桶的 ACL

PUT /example?ACLACLACLACLACL HTTP/1.1

Date: Mon, 27 Sep 2018 01:37:17 GMT

Host:CecCloud com

Accept: */*

x-amz-ACLACLACLACLACL: private

Authorization: AWS 04RZT432N80TGDF2Y2G2:9uNLINAQ7IOIrD9OnCpDfY2R6nU=

3. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 7B6DFC9BC71DD58B061285551605709 Date: Mon, 27 Sep 2018 

01:40:03 GMT

Content-Length: 0


4.9 设置桶 CORS 配置(PutBucketCors)

正确执行此操作,需要确保执行者有 s3:PutBucketCORS 权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。设置完成后,CORS 配置会在两分钟内生效。


4.9.1 请求消息

        1. 请求消息样式

PUT /bucket?cors HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization Content-MD5: MD5

<CORSConfiguration>

<CORSRule>

<ID>id</ID>

<AllowedMethod>method</AllowedMethod>

<AllowedOrigin>origin</AllowedOrigin>

<AllowedHeader>header</AllowedHeader>

<MaxAgeSeconds>seconds</MaxAgeSeconds>

<ExposeHeader>header</ExposeHeader>

</CORSRule>

</CORSConfiguration>

2. 请求消息参数

无。

3. 请求消息头

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

表4-11 请求消息头列表

         image.png

4. 请求消息元素

在此请求中,需要在请求的消息体中配置桶的 CORS 配置信息。

表4-12 请求消息元素列表

         image.png

         image.png


4.9.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code

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

Content-Type: type Content-Length: length

2. 响应消息头

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

3. 响应消息元素

无。

4. 错误响应消息

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


4.9.3 实例

        1. 请求实例

PUT /bucket?cors HTTP/1.1

Authorization: AWS 04RZT432N80TGDF2Y2G2:JUtd9kkJFjbKbkP9f6T/tAxozYY= 

Date: Sun, 26 Sep 2018 09:16:00 GMT

Host: CecCloud.com

Content-MD5: x3R4DBZgOrwsI6DwztrQCg==

<CORSConfiguration>

<CORSRule>

<AllowedOrigin>*</AllowedOrigin>

<AllowedMethod>GET</AllowedMethod>

<AllowedMethod>PUT</AllowedMethod>

<AllowedMethod>POST</AllowedMethod>

<MaxAgeSeconds>3000</MaxAgeSeconds>

</CORSRule>

</CORSConfiguration>

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 367CB63A2F283044981285492719060

Content-Type: application/xml Date: Sun, 26 Sep 2018 09:18:36 GMT


4.10 设置桶生命周期配置

        对象存储系统支持指定规则来实现定时删除桶中对象,这就是生命周期配置。典型的应用场景如:

周期性上传的日志文件,可能只需要保留一个星期或一个月,到期后要删除它们。某些文档在一段时间内经常访问,但是超过一定时间后就可能不会再访问了。这种文档您可能会先选择归档,然后在一定时间后删除。本接口实现为桶创建或更新生命周期配置信息。要正确执行此操作,需要确保执行者有

s3:PutLifecycleConfiguration 权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。

生命周期配置实现了定时删除对象的功能,所以如果想要阻止用户删除对象,以下几项操作的权限都应该被禁止:

• s3:DeleteObject

• s3:DeleteObjectVersion

• s3:PutLifecycleConfiguration

如果想要阻止用户管理桶的生命周期配置,应该禁止 s3:PutLifecycleConfiguration 权限。


4.10.1 请求消息

       1. 请求消息样式

PUT /bucketname?lifecycle HTTP/1.1 Host: Inspur.com

Content-Length: length Date: date

Authorization: authorization Content-MD5: MD5

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

<LifecycleConfiguration>

<Rule>

<ID>id</ID>

<Prefix>prefix</Prefix>

<Status>status</Status>

<Expiration>

<Days>days</Days>

</Expiration>

<NoncurrentVersionExpiration>

<NoncurrentDays>days</NoncurrentDays>

</NoncurrentVersionExpiration>

</Rule>

</LifecycleConfiguration>

2. 请求消息参数

无。

3. 请求消息头

该请求使用的请求消息头,如下表所示。

表4-13 请求消息头

         image.png

4. 请求消息元素

在此请求中,需要在请求的消息体中配置桶的生命周期配置信息。配置信息以 XML 格式上传。如果桶的多版本是 Enabled 或者 Suspended,那么可以设置 NoncurrentVersionExpiration 来控制对象的历史版本的生命周期。一个历史版本的生命周期,取决于它成为历史版本的时刻(即被新版本覆盖的那个时刻)和 NoncurrentDays。例如 NoncurrentDays 配置为 1 的话,表示当一个本成为历史版本之后,再过 1 天才能删除。对象 A 的版本 V1 创建于 1 号,5 号的时候又上传新的版本 V2,此时 V1 成为历史版本,那么再过 1 天,7 号的 0 点,V1 就过期了。如果桶的多版本是 Enabled 或者 Suspended,且最新版本对象满足 Expiration 规则时的处理:

• 桶当前的多版本状态为 enabled:如果对象的最新版本不是 deletemarker,则该对象会产生一个新的 deletemarker;如果最新版本是 deletemarker,且该对象只有这一个版本,则这个版本会被删除。如果最新版本是 deletemarker,且对象还有其他版本,则该对象的所有版本维持不变,没有新增和删除,也不会被修改(即无任何变化)。

• 桶当前的多版本状态为 suspended:

如果最新版本不是 null 版本,则会产生一个新的 null 版本的 deletemarker。如果最新版本是 null 版本,则这个 null 版本会被新产生的 null 版本的 deletemarker 覆盖.

       image.png

          image.png

         image.png



4.10.2 响应消息

       1. 响应消息样式

HTTP/1.1 status_code

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

Content-Length: length

2. 响应消息头

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

3. 响应消息元素

无。

4. 错误响应消息

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


4.10.3 实例

        1. 请求实例

PUT /bucket?lifecycle HTTP/1.1 Host: inspur.com

Date: Thu, 05 Sep 2018 09:35:44 +0000

Authorization: AWS B9A70C60A39C4D551A16:MOO0dUPmAAEXEe0/z+Q9LCx1Vzc= 

Content-MD5: Sa2ttwkV/+XRCwEHg4N8ow==

Content-Length: 423

<LifecycleConfiguration>

<Rule>

<ID>delete-2-days</ID>

<Prefix>test/</Prefix>

<Status>Enabled</Status>

<Expiration>

<Days>2</Days>

</Expiration>

<NoncurrentVersionExpiration>

<NoncurrentDays>5</NoncurrentDays>

</NoncurrentVersionExpiration>

</Rule>

</LifecycleConfiguration>

2. 响应实例

HTTP/1.1 200 OK

Date: Thu, 05 Sep 2018 09:35:44 GMT

x-amz-request-id: 90E2BA0A420C00000140ED7A369007A2

Content-Length: 0


4.11 列举桶内对象(ListObjects)

对桶拥有读权限的用户可以执行获取桶内对象列表的操作。如果用户在请求的 URI 里只指定了桶名,即 GET/BucketName,则返回信息中会包含桶内部分或所有对象的描述信息(一次最多返回1000个对象信息);如果用户还指定了prefix、marker、maxkeys、delimiter 参数中的一个或多个,则返回的对象列表将按照规定的语义返回指定的对象.


4.11.1 请求消息

1. 请求消息样式

GET /bucketname?prefix=p&delimiter=d HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

该请求可以通过带参数,列举出桶内的一部分对象,参数的具体含义如表 4-14 所示。

         image.png

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

3. 请求消息头

无。

4. 请求消息元素

该请求消息头中不带消息元素。


4.11.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code

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

x-amz-bucket-region: region Content-Type: type

Content-Length: length

<Response Body>

2. 响应消息头

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

3. 响应消息元素

该请求的响应消息中,会以 XML 形式将桶中的对象列出来,元素的具体含义如表 4-15 所示。

表4-15 响应消息元素列表

         image.png

          image.png

          image.png

           image.png

            image.png

4. 错误响应消息

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


4.11.3 实例

       1. 请求实例

GET /example HTTP/1.1

Authorization: AWS 04RZT432N80TGDF2Y2G2:QaTwEcRs5E4p/uahBMYHB+dY00k= 

Date: Sun, 26 Sep 2018 09:16:00 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 367CB63A2F283044981285492719060

Content-Type: application/xml Date: Sun, 26 Sep 2018 09:18:36 GMT

Content-Length: 560

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

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

<Name>example</Name>

<Prefix/>

<Marker/>

<MaxKeys>1000</MaxKeys>

<IsTruncated>false</IsTruncated>

<Contents>

<Key>test</Key>

<LastModified>2015-01-15T05:52:15.920Z</LastModified>

<ETag>0f64741bf7cb1089e988e4585d0d3434</ETag>

<Size>11</Size>

<Owner>

<ID>bcaf1ffd86f41caff1a493dc2ad8c2c281e37522a640e161ca5fb16fd0

81034f</ID>

<DisplayName>apple</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

</Contents>

</ListBucketResult>

3. 请求实例(简单前缀查询)

GET /example?prefix=photos/2006/&delimiter=/ HTTP/1.1 Accept-Encoding: 

gzip,deflate

Authorization: AWS 04RZT432N80TGDF2Y2G2:QaTwEcRs5E4p/uahBMYHB+dY00k= 

Date: Sun, 26 Sep 2018 09:18:36 GMT

Host: CecCloud.com

4. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 367CB63A2F283044981285492719060

Content-Type: application/xml Date: Sun, 26 Sep 2018 09:18:36 GMT

Content-Length: 560

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

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

<Name>example</Name>

<Prefix>photos/2006/</Prefix>

<Marker></Marker>

<MaxKeys>1000</MaxKeys>

<Delimiter>/</Delimiter>

<IsTruncated>false</IsTruncated>

<Contents>

<Key>photos/2006/index.html</Key>

<LastModified>2018-01-01T12:00:00.000Z</LastModified>

<ETag>"ce1acdafcc879d7eee54cf4e97334078"</ETag>

<Size>1234</Size>

<Owner>

<ID>214153b66967d86f031c7487b4566cb1b</ID>

<DisplayName>John Smith</DisplayName>

</Owner>

<StorageClass>STANDARD</StorageClass>

</Contents>

<CommonPrefixes>

<Prefix>photos/2006/January/</Prefix>

</CommonPrefixes>

</ListBucketResult>


4.12 获取桶元数据(HeadBucket)

对桶拥有读权限的用户可以执行查询桶元数据是否存在的操作。

4.12.1 请求消息

      1. 请求消息样式

HEAD /bucketname HTTP/1.1 Host: CecCloud.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.12.2 响应消息


1. 响应消息样式

HTTP/1.1 status_code

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

2. 响应消息头

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

         表4-16 响应消息头列表

          image.png

3. 响应消息元素

无。

4. 错误响应消息

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


4.12.3 实例

        1. 请求实例

HEAD /bucket HTTP/1.1

Authorization: AWS 04RZT432N80TGDF2Y2G2:JUtd9kkJFjbKbkP9f6T/tAxozYY= 

Date: Sun, 26 Sep 2018 09:16:00 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

X-RGW-Object-Count:2 X-RGW-Bytes-Used:277

x-amz-request-id: 367CB63A2F283044981285492719060 Date: Sun, 26 Sep 2018 

09:18:36 GMT

Content-Length: 0

HTTP/1.1 status_code

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

3. 响应消息头

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

表4-17 响应消息头列表

         image.png

4. 响应消息元素

无。

5. 错误响应消息

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


4.12.4 实例

        1. 请求实例

HEAD /bucket HTTP/1.1

Authorization: AWS 04RZT432N80TGDF2Y2G2:JUtd9kkJFjbKbkP9f6T/tAxozYY= 

Date: Sun, 26 Sep 2018 09:16:00 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

X-RGW-Object-Count:2 X-RGW-Bytes-Used:277

x-amz-request-id: 367CB63A2F283044981285492719060 Date: Sun, 26 Sep 2018 

09:18:36 GMT

Content-Length: 0


4.13 获取桶ACL(GetBucketACL)

用户执行获取桶 ACL 的操作,返回信息包含指定桶的权限控制列表信息。用户必须拥有对指定桶读 ACP 的权限或 FULL_CONTROL 权限,才能执行获取桶 ACL 的操作。


4.13.1 请求消息

1. 请求消息样式

GET /bucketname?ACLACLACLACLACL HTTP/1.1 Host: CecCloud.comDate: dateAuthorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.13.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/2006-03-01/”>

<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 公共响应消息头章节。

3. 响应消息元素

该请求的响应中以消息元素的形式返回桶的 ACL 信息,元素的具体意义如表 4-18 所示。

表4-18 响应消息元素列表

         image.png

4. 错误响应消息

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


4.13.3 实例

       1. 请求实例

   GET /bucketname?ACLACLACLACLACL HTTP/1.1

Authorization: AWS 04RZT432N80TGDF2Y2G2:FAcC4bDx0izVL9lEH521v01in/Y= 

Date: Mon, 27 Sep 2018 01:22:05 GMT

Host: CecCloud.com

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: 7B6DFC9BC71DD58B061285550689635

Content-Type: application/xml Date: Mon, 27 Sep 2018 01:24:47 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/XMLSchema-instance" 

xsi:type="CanonicalUser">

<ID>bcaf1ffd86f41caff1a493dc2ad8c2c281e37522a640e</ID>

<DisplayName>apple</DisplayName>

</Grantee>

<Permission>FULL_CONTROL</Permission>

</Grant>

</AccessControlList>

</AccessControlPolicy>


4.14 设置桶策略

对象存储提供基于桶 Policy 访问策略,该功能比 ACL 更加细致的定义了用户对桶内资源的访问策略,可以更加精细化将资源的访问权限授权给要开放的用户。


4.14.1 请求消息

       1. 请求消息样式

PUT / BucketName?policy

Host:.Doamin

Date: date

Authorization: SignatureValue

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

请求 Body 采用 JSON 格式,包括 policy 内容和描述的字符串。元素解释如下:

• Statement: 使用此主要策略元素作为以下元素的容器。可以在一个策略中包含多个语句。

• Version: 指定要使用的策略语言的版本。作为最佳实践,请使用最新的版本。

• Sid: 包含可选的语句 ID 来区分不同的语句。

• Effect:使用 Allow 或 Deny 来指示策略是允许还是拒绝访问

• Principal:指示要允许或拒绝访问的账户、用户、角色或联合身份用户。如果要创建策略以附加到用户或角色,则不能包含此元素。委托人暗示为该用户或角色。

• Resource:指定操作应用于的资源的列表。

• Condition:指定策略生效时的条件。

• Action:包含策略允许或拒绝的操作的列表,具体接口参考下面列表。

        image.png


4.14.2 响应消息

1. 相应消息头

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

2. 输出参数

PUT 操作返回是否操作成功。

3. 返回状态码

返回状态码请参考表 3-1。


4.14.3 实例

1. 请求实例

PUT /BucketName?policy HTTP/1.1

Host: oss.cecstack.com

Date: Tue, 04 Apr 2022 20:34:56 GMT

Authorization: authorization string

{

"Version":"2022-05-10",

"Id":"aaaa-bbbb-cccc-dddd",

"Statement" : [

{

"Effect":"Allow",

"Sid":"1",

"Principal" : {

"AWS":["111122223333","444455556666"]

},

"Action":["s3:*"],

"Resource":"arn:aws:s3:::bucket/*",

"Condition":{

"DateGreaterThan": {"aws:CurrentTime": ["2022-04-

01T00:00:00Z"]},

"DateLessThan": {"aws:CurrentTime": ["2022-07-30T23:59:59Z"]}

}

}

]

}

2. 响应实例

HTTP/1.1 200 ok

x-amz-id-2: Uuag1LuByR5Onimru9SAMPLEAtRPfTaOFg==

x-amz-request-id: 656c76696e6727732SAMPLE7374

Date: Tue, 04 Apr 2022 20:34:56 GMT

Connection: keep-alive

3. 设置防盗链黑名单请求实例

PUT /BucketName?policy HTTP/1.1

Host: oss.cecstack.com

Date: Tue, 04 Apr 2022 20:34:56 GMT

Authorization: authorization string

{

"Version":"2022-05-10

"Id":"http referer policy example",

"Statement":[

{

"Sid":"Allow get requests originating from www.example.com and 

example.com.",

"Effect":"Deny",

"Principal":"*",

"Action":["s3:*"],

"Resource":"arn:aws:s3::: bucket/*",

"Condition":{

 

"StringLike":{"aws:Referer":["http://www.example.com/*","http://example

.com/*"]}

}

}

]

}

4. 响应实例

HTTP/1.1 200 ok

x-amz-id-2: Uuag1LuByR5Onimru9SAMPLEAtRPfTaOFg==

x-amz-request-id: 656c76696e6727732SAMPLE7374

Date: Tue, 04 Apr 2022 20:34:56 GMT

Connection: keep-alive

5. 设置防盗链白名单请求实例

PUT /BucketName?policy HTTP/1.1

Host: oss.cecstack.com

53

Date: Tue, 04 Apr 2022 20:34:56 GMT

Authorization: authorization string

{

"Version":"2022-05-10",

"Id":"http referer policy example",

"Statement":[

{

"Sid":"Allow get requests originating from www.example.com and 

example.com.",

"Effect":"Deny",

"Principal":"*",

"Action":["s3:*"],

"Resource":"arn:aws:s3::: bucket/*",

"Condition":{

 

"StringNotLike":{"aws:Referer":["http://www.example.com/*","http://exam

ple.com/*"]}

}

}

]

}

6. 响应实例

HTTP/1.1 200 ok

x-amz-id-2: Uuag1LuByR5Onimru9SAMPLEAtRPfTaOFg==

x-amz-request-id: 656c76696e6727732SAMPLE7374

Date: Tue, 04 Apr 2022 20:34:56 GMT

Connection: keep-alive


4.15 获取桶策略

该接口用于获取桶 Policy 信息,使用该接口的用户必须拥有 GetBucketPolicy,无该权限访问返回403,访问禁止错误,桶 Owner 总是拥有此权限。


4.15.1 请求消息

       1. 请求消息样式

GET / BucketName?policy HTTP/1.1

Host: oss.cecstack.com

Date: date

Authorization: authorization string

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素


4.15.2 响应消息

       1. 响应消息头

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

2. 输出参数

无。

3. 返回状态码

返回状态码请参考表 3-1。


4.15.3 实例

        1. 请求实例

GET /bucketname?policy

Host:.Domain

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

Authorization: authorization string

2. 响应实例

HTTP/1.1 200 OK

x-amz-id-2: Uuag1LuByru9pO4SAMPLEAtRPfTaOFg==

x-amz-request-id: 656c76696e67SAMPLE57374

Date: Tue, 04 Apr 2022 20:34:56 GMT

Connection: keep-alive

{

"Version":"2022-05-10",

"Id":"aaaa-bbbb-cccc-dddd",

"Statement" : [

{

"Effect":"Deny",

"Sid":"1",

"Principal" : {

"AWS":["111122223333","444455556666"]

},

"Action":["s3:*"],

"Resource":"arn:aws:s3:::bucket/*",

"Condition":{

"DateGreaterThan": {"aws:CurrentTime": ["2022-04-01T00:00:00Z"]},

"DateLessThan": {"aws:CurrentTime": ["2022-07-30T23:59:59Z"]}

}

}

]

}


4.16 删除桶策略

该接口用于获取桶 Policy 信息,使用该接口的用户必须拥有 GetBucketPolicy,无该权限访问返回403,访问禁止错误,桶 Owner 总是拥有此权限。


4.16.1 请求消息

       1. 请求消息样式

DELETE /BucketName?policy

Host: Domain

Date: date

Authorization: authorization string

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.16.2 响应消息

1. 响应消息头

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

2. 响应消息元素

无。

3. 返回状态码

返回状态码请参考表 3-1。


4.16.3 实例

1. 请求实例

DELETE /BucketName?policy

Host: oss.cecstack.com

Date: date

Authorization: authorization string

2. 响应实例

HTTP/1.1 204 No Content

x-amz-id-2: Uuag1LuByRx9e6j5OnimrSAMPLEtRPfTaOFg==

x-amz-request-id: 656c76696e672SAMPLE5657374

Date: Tue, 04 Apr 2022 20:34:56 GMT

Connection: keep-alive


4.17 设置桶加密配置

对象存储使用 PUT 操作为桶创建或更新服务端加密配置信息。设置桶加密配置后,向该桶上传对象时,会采用桶的默认加密配置对数据进行加密。目前支持配置的服务端加密方式有 KMS 托管密钥的服务端加密。要使用此操作,您必须拥有执行. PutBucketEncryption 操作的权限。


4.17.1 请求消息

      1. 请求消息样式

PUT /bucket?encryption HTTP/1.1 

Host: CecCloud.com

Date: date

Content-Length: Size

Authorization: Signature 

<ServerSideEncryptionConfiguration 

xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<Rule>

<ApplyServerSideEncryptionByDefault>

<SSEAlgorithm>aws:kms</SSEAlgorithm>

<KMSMasterKeyID>keyid</KMSMasterKeyID>

</ApplyServerSideEncryptionByDefault>

</Rule>

</ServerSideEncryptionConfiguration>

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.17.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code 

Date: date

Content-Length: length

2. 响应消息头

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

3. 相应消息元素

无。

4. 错误响应消息说明

错误响应消息元素如表 3-2。


4.17.3 实例

        1. 请求实例

PUT/bucket?encryption HTTP/1.1

Host: CecCloud.com

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

Content-Length: 1048596

Authorization:AWS 14RZT432N80TGDF2Y2G2:8se2hm3YLchJhuPMDrybeITcuo0= 

<ServerSideEncryptionConfiguration 

xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<Rule>

<ApplyServerSideEncryptionByDefault>

<SSEAlgorithm>aws:kms</SSEAlgorithm>

<KMSMasterKeyID>examplekeyid</KMSMasterKeyID>

</ApplyServerSideEncryptionByDefault>

</Rule>

</ServerSideEncryptionConfiguration>

2. 响应实例

HTTP/1.1 200 OK

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

Content-Length: 0


4.18 获取桶加密配置

对象存储使用 GET 操作来获取指定桶的加密配置。要正确执行此操作,需要确保执行者有 GetBucketEncryption 权限。缺省情况下只有桶的所有者可以执行此操作。


4.18.1 请求消息

       1. 请求消息样式

GET /bucket?encryption HTTP/1.1 

Host: CecCloud.com

Date: date

Content-Length: Size

Authorization: Signature

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.18.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code 

Date: date

Content-Length: length

<ServerSideEncryptionConfiguration 

xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<Rule>

<ApplyServerSideEncryptionByDefault>

<SSEAlgorithm>aws:kms</SSEAlgorithm>

<KMSMasterKeyID>keyid</KMSMasterKeyID>

</ApplyServerSideEncryptionByDefault>

</Rule>

</ServerSideEncryptionConfiguration>

2. 响应消息头

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

3. 相应消息元素

表4-19 获取桶加密配置消息元素

  image.png

4. 错误响应消息说明

错误响应消息元素如表 3-2。


4.18.3 实例

        1. 请求实例

GET /bucket?encryption HTTP/1.1

Host: CecCloud.com

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

Content-Length: 1048596

Authorization:AWS 14RZT432N80TGDF2Y2G2:8se2hm3YLchJhuPMDrybeITcuo0=

2. 响应实例

HTTP/1.1 200 OK

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

Content-Length: 348

<ServerSideEncryptionConfiguration 

xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<Rule>

<ApplyServerSideEncryptionByDefault>

<SSEAlgorithm>aws:kms</SSEAlgorithm>

<KMSMasterKeyID>examplekeyid</KMSMasterKeyID>

</ApplyServerSideEncryptionByDefault>

</Rule>

</ServerSideEncryptionConfiguration>


4.19 删除桶加密配置

对象存储使用 DELETE 操作来删除指定桶的加密配置。要正确执行此操作,需要确保执行者有 PutBucketEncryption 权限。缺省情况下只有桶的所有者可以执行此操作。


4.19.1 请求消息

1. 请求消息样式

DELETE /bucket?encryption HTTP/1.1 

Host: CecCloud.com

Date: date

Content-Length: Size

Authorization: Signature

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。




4.19.2 响应消息

       1. 响应消息样式

HTTP/1.1 status_code 

Date: date

Content-Length: length

2. 响应消息头

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

3. 相应消息元素

表4-20 删除桶加密配置消息元素列表

         image.png

4. 错误响应消息说明

错误响应消息元素如表 3-2。


4.19.3 实例

        1. 请求实例

GET /bucket?encryption HTTP/1.1

Host: CecCloud.com

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

Content-Length: 1048596

Authorization:AWS 14RZT432N80TGDF2Y2G2:8se2hm3YLchJhuPMDrybeITcuo0=

2. 响应实例

HTTP/1.1 200 OK

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

Content-Length: 0


4.20 获取桶的多版本状态

桶的所有者可以获取指定桶的多版本状态。如果从未设置桶的多版本状态,则此操作不会返回桶的多版本状态。


4.20.1 请求消息

       1. 请求消息样式

GET /bucketname?versioning HTTP/1.1

Host: Inspur.com

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.20.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id

Date: date

Content-Type: type

Content-Length: length

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2015-06-

30/">

<Status>status</Status>

</VersioningConfiguration>

2. 响应消息头

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

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

3. 响应消息元素

表4-21 响应消息头列表

         image.png

4. 错误响应消息

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


4.20.3 实例

       1. 请求实例

GET /examplebucket?versioning HTTP/1.1

Host: inspur.com

Date: Mon, 13 Jan 2018 07:41:08 +0000

Authorization: AWS C5780CDE717D50F4CDAA:0FuFgUd3e9dqi3OeXPj1DiQMJgk=

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB78000001438A8C029703EB

Content-Type: application/xml

Date: Mon, 13 Jan 2018 09:41:08 GMT

Content-Length: 178


4.21 设置桶的多版本状态

多版本功能可在用户意外覆盖或删除对象的情况下提供一种恢复手段。用户可以使用多版本功能来保存、检索和还原对象的各个版本,这样用户能够从意外操作或应用程序故障中轻松恢复数据。多版本功能还可用于数据保留和存档。默认情况下,桶没有开启多版本功能。本接口设置桶的多版本状态,用来开启或暂停桶的多版本功能。

• 设置桶的多版本状态为 Enabled,开启桶的多版本功能:则所有添加到桶中的对象分配一个唯一的版本 ID。

• 设置桶的多版本状态为 Suspended,暂停桶的多版本功能:则所有添加到桶中的对象版本 ID 为 null。只有桶的所有者可以设置桶的多版本状态。


4.21.1 请求消息

1. 请求消息样式

PUT /bucketname?versioning HTTP/1.1

Host: Inspur.com

Date: date

Authorization: authorization

Content-Length: length

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-

01/">

<Status>status</Status>

</VersioningConfiguration>

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

         image.png

4.21.2 响应消息

      1. 响应消息样式

HTTP/1.1 status_code

x-amz-request-id: request id

Date: date

Content-Length: length

2. 响应消息头

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

3. 相应消息元素

4. 错误响应消息说明

错误响应消息元素如表 3-2


4.21.3 实例

       1. 请求实例

PUT /bucket?versioning HTTP/1.1

Host: inspur.com

Date: Mon, 13 Jan 2018 07:33:22 +0000

Authorization: AWS C5780CDE717D50F4CDAA:MxAazqX4BdUfCXpbNd1VpZqyDD4=

Content-Length: 80

<VersioningConfiguration>

<Status>Enabled</Status>

</VersioningConfiguration>

2. 响应实例

HTTP/1.1 200 OK

x-amz-request-id: DCD2FC9CAB78000001438A84E693000F

Date: Mon, 13 Jan 2018 07:33:22 GMT

Content-Length: 0


4.22 设置桶的日志转存配置

为一个桶开启日志转存功能,可以将对桶的请求以AWS S3日志格式作为一个文件存储到目标桶。

• 目标桶与源桶可以相同也可以不同,但必须属于同一用户的同一地域。

• 桶的拥有者才能设置日志转存配置。

• 默认情况下桶没有开启日志转存配置。

• 目标桶的拥有者具有目标桶的日志文件的全部权限,可以分配给其他用户相应权限以供访问日志文件。


4.22.1 请求消息

       1. 请求消息样式

PUT /bucketname?logging HTTP/1.1

Host: cecstc.cn

Date: date

Authorization: authorization

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

<BucketLoggingStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<LoggingEnabled>

<TargetBucket>string</TargetBucket>

<TargetPrefix>string</TargetPrefix>

</LoggingEnabled>

</BucketLoggingStatus>

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

image.png

       image.png


4.22.2 响应消息

1. 响应消息样式

HTTP/1.1 status_code

Date: date

2. 响应消息头

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

3. 相应消息元素

4. 错误响应消息说明

错误响应消息元素如表 3-2。


4.22.3 实例

     1. 请求实例:开启日志转存

PUT /bucket?logging HTTP/1.1

Host: cestc.cn

Date: Mon, 25 Oct 2022 17:33:22 +0000

Authorization: AWS4-HMAC-SHA256 Credential=******

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

<BucketLoggingStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<LoggingEnabled>

<TargetBucket>logbucket</TargetBucket>

<TargetPrefix>log-</TargetPrefix>

</LoggingEnabled>

</BucketLoggingStatus>

2. 请求实例:关闭日志转存

PUT /bucket?logging HTTP/1.1

Host: cestc.cn

1. 请求实例:开启日志转存

PUT /bucket?logging HTTP/1.1

Host: cestc.cn

Date: Mon, 25 Oct 2022 17:33:22 +0000

Authorization: AWS4-HMAC-SHA256 Credential=******

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

<BucketLoggingStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<LoggingEnabled>

<TargetBucket>logbucket</TargetBucket>

<TargetPrefix>log-</TargetPrefix>

</LoggingEnabled>

</BucketLoggingStatus>

2. 请求实例:关闭日志转存

PUT /bucket?logging HTTP/1.1

Host: cestc.cn


4.23 查看桶的日志转存配置

查看桶的日志转存配置。桶的拥有者才能执行这个操作。

4.23.1 请求消息

        1. 请求消息样式

GET /bucketname?logging HTTP/1.1

Host: cecstc.cn

Date: date

Authorization: authorization

2. 请求消息参数

无。

3. 请求消息头

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

4. 请求消息元素

无。


4.23.2 响应消息

       1. 响应消息样式

HTTP/1.1 status_code

Date: date

Content-Length: length

2. 响应消息头

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

3. 相应消息元素

         image.png

4. 错误响应消息说明

错误响应消息元素如表 3-2。


4.23.3 实例

       1. 请求实例

GET /bucket?logging HTTP/1.1

Host: cestc.cn

Date: Mon, 25 Oct 2022 17:33:22 +0000

Authorization: AWS4-HMAC-SHA256 Credential=******

2. 响应实例:开启日志转存的情形

GET /bucketname?logging HTTP/1.1

Host: cecstc.cn

Date: date

Authorization: authorization

Content-Length: length

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

<BucketLoggingStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<LoggingEnabled>

<TargetBucket>logbucket</TargetBucket>

<TargetPrefix>log-</TargetPrefix>

</LoggingEnabled>

</BucketLoggingStatus>

3. 响应实例:未开启日志转存的情形

GET /bucketname?logging HTTP/1.1

Host: cecstc.cn

Date: date

Authorization: authorization

Content-Length: length

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

<BucketLoggingStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

</BucketLoggingStatus>


意见反馈

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

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

联系我们
回到顶部