S3 Object Storage - Bucket Operations

Object Storage - Bucket Operations


DELETE Bucket

This operation allows you to delete the bucket mentioned in the command.

Example Request

DELETE / HTTP/1.1

Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20170710T181321Z
Authorization: authorization string

This request will delete the bucket named BucketName. Make sure the bucket is empty to avoid loss of data when you delete it.

Example Response

If the operation is successful no output will be returned.

HTTP/1.1 204 No Content
Date: Sam, 10 Nov 2018 15:17:33 GMT
Connection: close

Note: You can also use aws s3api delete-bucket --bucket my-bucket --region us-east-1.


DELETE Bucket CORS

This operation allows you to delete the CORS configuration of an existing bucket.

Example Request

DELETE /?cors HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization string

Example Response If the operation is successful no output will be returned.

HTTP/1.1 204 No Content
Date: Sam, 10 Nov 2018 15:17:33 GMT
Connection: close

DELETE Bucket tagging

This operation allows you to delete the tag set from the specified bucket.

Example Request

DELETE /?tagging HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Date: Mon, 10 Jun 2018 17:31:43 GMT
Authorization: authorization string

Example Response

If the operation is successful no output will be returned.

HTTP/1.1 204 No Content
Date: Mon, 10 Jun 2018 17:31:45 GMT
Connection: close

GET Bucket (List Objects)

This operation allows to return some or all (up to 1,000) of the objects in a bucket.

Example Request

GET / HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud

Example Response

HTTP/1.1 200 OK
Content-Length: 526
Content-Type: application/xml
Date: Mon, 20 Apr 2020 08:34:47 GMT
x-amz-id-2: txaef1634de6b6411eb3f9b-005e9d5ea6
x-amz-request-id: txaef1634de6b6411eb3f9b-005e9d5ea6

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>bucketname</Name>
  <Prefix />
  <Marker />
  <MaxKeys>1000</MaxKeys>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>image.png</Key>
    <LastModified>2020-03-25T11:27:33.000Z</LastModified>
    <ETag>"2962dcafeea999ebad0e7a09074856e6"</ETag>
    <Size>37939</Size>
    <Owner>
      <ID />
      <DisplayName />
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
  <Contents>
    <Key>file.log</Key>
    <LastModified>2020-03-24T21:39:22.000Z</LastModified>
    <ETag>"4b5ff0ea81ec9df052ae7947d17ceba1"</ETag>
    <Size>137668</Size>
    <Owner>
      <ID />
      <DisplayName />
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Contents>
</ListBucketResult>

Note: You can also use aws s3api list-objects-v2 --bucket my-bucket.

You can use the request parameters as selection criteria to return a subset of the objects in a bucket. Run aws s3api list-objects-v2 help for more details.


GET Bucket ACL

This operation allows you to get the ACL of a bucket.

Example Request

This request triggers the display of the access control list of the bucket BucketName.

GET /?acl HTTP/1.1

Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T095616Z
Authorization: authorization string

Example Response

HTTP/1.1 200 OK

Date: Thu, 11 Apr 2019 09:56:16 GMT
x-amz-request-id: tx6beab12a75c84071b6378-005caf06c9
Content-Type: application/xml
Content-Length: 698
Connection: close

<?xml version='1.0' encoding='UTF-8'?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Owner>
    <ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</ID>
    <DisplayName>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</DisplayName>
  </Owner>
  <AccessControlList>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
        <ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</ID>
        <DisplayName>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</DisplayName>
      </Grantee>
      <Permission>FULL_CONTROL</Permission>
    </Grant>
  </AccessControlList>
</AccessControlPolicy>'

Note: You can also use aws s3api get-bucket-acl --bucket my-bucket.


GET Bucket CORS

This operation allows you to get the Cross-origin resource sharing (CORS) configuration of a bucket.

Example Request

GET /?cors HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Date: date
Authorization: authorization string

Example Response

HTTP/1.1 200 OK
Date: Mon, 18 Mar 2019 10:41:42 GMT

<CORSConfiguration>
     <CORSRule>
       <AllowedOrigin>http://www.example.com</AllowedOrigin>
       <AllowedMethod>GET</AllowedMethod>
       <MaxAgeSeconds>3000</MaxAgeSec>
       <ExposeHeader>Etag</ExposeHeader>
     </CORSRule>
</CORSConfiguration>

GET Bucket location

This operation allows you to display the location constraint of a bucket.

Example Request

GET /?location HTTP/1.1

Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T094149Z
Authorization: authorization string

Example Response

<?xml version='1.0' encoding='UTF-8'?>
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">nl-ams</LocationConstraint>'

Note: You can also use aws s3api get-bucket-location --bucket my-bucket.


GET Bucket Object Version

This operation allows you to returns metadata about all of the versions of objects in a bucket.

Example Request

GET /?versions HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T100211Z

Example Response

<?xml version='1.0' encoding='UTF-8'?>
<ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>bucket-stoic-tesla</Name>
  <Prefix/>
  <KeyMarker/>
  <VersionIdMarker/>
  <MaxKeys>1000</MaxKeys>
  <IsTruncated>false</IsTruncated>
  <Version>
    <Key>holidays.png</Key>
    <VersionId>1553680197512368</VersionId>
    <IsLatest>true</IsLatest>
    <LastModified>2019-03-27T09:49:57.000Z</LastModified>
    <ETag>"694be693a6156cd92283c1f29026ac25"</ETag>
    <Size>54139</Size>
    <Owner>
      <ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</ID>
      <DisplayName>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Version>
  <Version>
    <Key>website.html</Key>
    <VersionId>1553680708039023</VersionId>
    <IsLatest>true</IsLatest>
    <LastModified>2019-03-27T09:58:28.000Z</LastModified>
    <ETag>"e5b7e0dcc9d664896cb92a3f7775f352"</ETag>
    <Size>138</Size>
    <Owner>
      <ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</ID>
      <DisplayName>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
  </Version>
</ListVersionsResult>

Note: You can also use aws s3api list-object-versions --bucket my-bucket.


GET Bucket tagging

This operation allows you to the tag set of the specified bucket.

Example Request

GET ?tagging HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
Date: Thu, 11 Apr 2019 10:02:11 GMT
Authorization: authorization string
Content-Type: text/plain

Example Response

<Tagging>
  <TagSet>
     <Tag>
       <Key>Bucket Description</Key>
       <Value>Holiday Photos</Value>
     </Tag>
     <Tag>
       <Key>Event</Key>
       <Value>Paris March 2019</Value>
     </Tag>
  </TagSet>
</Tagging>

GET Bucket Versioning

This operation allows you to return the versioning state of a bucket.

Example Request

GET /?versioning HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
Date: Thu, 11 Apr 2019 10:02:11 GMT
Authorization: authorization string
Content-Type: text/plain

Example Response

<VersioningConfiguration xmlns="http://s3.nl-ams.scw.cloud/bucketname/doc/2006-03-01/">
  <Status>Enabled</Status>
</VersioningConfiguration>

Note: You can also use aws s3api get-bucket-versioning --bucket BucketName.


HEAD Bucket

This operation can be used to determine if a bucket exists and you have permission to access it.

Example Request

HEAD / HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Date: Thu, 11 Apr 2019 10:07:54 GMT
Authorization: authorization string

Example Response

If the bucket exists and you have access to it, no output is returned. Otherwise, an error message will be shown.

Note: You can also use aws s3api head-bucket --bucket BucketName.


PUT Bucket

This operation allows you to create a new bucket.

Example Request

PUT / HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Date: Wed, 19 Sep 2018 15:21:16 GMT
Authorization: authorization string

Example Response

HTTP/1.1 200 OK
x-amz-id-2: txd82ea47875c746f3b4225-005caf1289
x-amz-request-id: txd82ea47875c746f3b4225-005caf1289
Date: Thu, 11 Apr 2019 10:10:18 GMT
Location: http://s3.nl-ams.scw.cloud/bucketname
Connection: close

Note: You can also use aws s3 mb s3://bucketname with the command line tools to create a new bucket.


PUT Bucket ACL

This operation allows you to configure the Access Control List of a Bucket.

Example Request

PUT /?acl HTTP/1.1

content-type:application/xml
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: 724483e3830b19d6960345c484fb7904b26e8f2fb34a6c002fa779353b68c8d8
x-amz-date: 20180910T183709Z
Authorization: authorization string

<AccessControlPolicy xmlns="http://s3.nl-ams.scw.cloud/bucketname">
  <Owner>
    <ID>6174283</ID>
  </Owner>
  <AccessControlList>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
        <ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</ID>
      </Grantee>
      <Permission>FULL_CONTROL</Permission>
    </Grant>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
        <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
      </Grantee>
      <Permission>READ</Permission>
    </Grant>
  </AccessControlList>
</AccessControlPolicy>

Example Response

No output is returned.

Note: You can also use aws s3api put-bucket-acl --bucket BucketName --acl private.


PUT Bucket CORS

This operation allows you to configure CORS settings of an existing bucket.

Example Request

PUT /?cors HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization string

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example.com</AllowedOrigin>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <MaxAgeSeconds>3000</MaxAgeSec>
   <ExposeHeader>Etag</ExposeHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <MaxAgeSeconds>3000</MaxAgeSeconds>
 </CORSRule>
</CORSConfiguration>

Example Output

If the operation is successful no output will be returned.


PUT Bucket tagging

This operation allows you to add a tag set to an existing bucket.

Example Request

PUT ?tagging HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Content-Length: 1660
x-amz-date: Thu, 14 Mar 2019 10:04:21 GMT
Authorization: authorization string

<Tagging>
  <TagSet>
    <Tag>
      <Key>Bucket Description</Key>
      <Value>Holiday Photos</Value>
    </Tag>
    <Tag>
      <Key>Event</Key>
      <Value>Paris March 2019</Value>
    </Tag>
  </TagSet>
</Tagging>

Example Output

If the operation is successful no output will be returned.


PUT Bucket Versioning

This operation allows you to set the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.

Example Request

PUT /?versioning HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Date: Thu, 11 Apr 2019 10:13:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-Length: 124

Example Response

HTTP/1.1 200 OK
x-amz-id-2: tx456e25b3558449a08b406-005caf132c
x-amz-request-id: tx456e25b3558449a08b406-005caf132c
Date: Thu, 11 Apr 2019 10:13:00 GMT

Note: You can also use aws s3api put-bucket-versioning --bucket BucketName.

Generating the Authorization String

You can generate the authorization string, following the authorization string procedure.

Discover the Cloud That Makes Sense