Understanding Object Storage bucket operations
GetService
This operation returns a list of all buckets owned by the authenticated user who sent the request.
The operation does not list buckets created by other users, nor does it list buckets for anonymous requests.
Sample request:
GET / HTTP/1.1
Host: s3.nl-ams.scw.cloud
Date: Thu, 11 Apr 2019 10:16:53 GMT
Authorization: authorization stringSample response:
<?xml version='1.0' encoding='UTF-8'?>
<ListAllMyBucketsResult 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>
<Buckets>
<Bucket>
<Name>myfirstbucket</Name>
<CreationDate>2018-09-12T11:54:02.000Z</CreationDate>
</Bucket>
<Bucket>
<Name>myotherbucket</Name><CreationDate>2019-04-11T10:10:17.000Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>CLI command:
aws s3 lsCreateBucket
This operation allows you to create a new bucket.
Sample 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 stringCLI command
aws s3 mb s3://bucketnameDeleteBucket
This operation allows you to delete the bucket mentioned in the command.
Sample request
DELETE / HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20170710T181321Z
Authorization: authorization stringCLI command
aws s3api delete-bucket --bucket my-bucket --region nl-amsDeleteBucketCors
This operation allows you to delete the CORS configuration of an existing bucket.
Sample request
DELETE /?cors HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization stringDeleteBucketEncryption
This operation removes the default encryption configuration (SSE-ONE or SSE-KMS) of an existing bucket. Objects already stored in the bucket remain encrypted.
Sample request
DELETE /?encryption HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization stringCLI command
aws s3api delete-bucket-encryption --bucket my-bucketDeleteBucketLifecycle
This operation deletes the lifecycle configuration of a specified bucket.
Sample request
DELETE /?lifecycle HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization stringDeleteBucketPolicy
This operation deletes the bucket policy of a specified bucket.
Sample request
DELETE /my-bucket?policy HTTP/1.1CLI command
aws s3api delete-bucket-policy --bucket my-bucketDeleteBucketTagging
This operation allows you to delete the tag set from the specified bucket.
Sample request
DELETE /?tagging HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Date: Mon, 10 Jun 2018 17:31:43 GMT
Authorization: authorization stringSample response
HTTP/1.1 204 No Content
Date: Mon, 10 Jun 2018 17:31:45 GMT
Connection: closeDeleteBucketWebsite
This operation deletes the bucket website configuration of a specified bucket.
Sample request
DELETE /my-bucket?website HTTP/1.1CLI command
aws s3api delete-bucket-website --bucket my-bucketGetBucketAcl
This request triggers the display of the Access Control List (ACL) of the bucket BucketName.
Sample request
GET /?acl HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T095616Z
Authorization: authorization stringSample 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>'CLI command
aws s3api get-bucket-acl --bucket my-bucketGetBucketCors
This operation allows you to get the Cross-origin resource sharing (CORS) configuration of a bucket.
Sample request
GET /?cors HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Date: date
Authorization: authorization stringSample 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>GetBucketEncryption
This operation returns the default encryption configuration (SSE-ONE or SSE-KMS) of a bucket.
Sample request
GET /?encryption HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization stringSample response
HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<ServerSideEncryptionConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ApplyServerSideEncryptionByDefault>
<SSEAlgorithm>AES256</SSEAlgorithm>
</ApplyServerSideEncryptionByDefault>
<BucketKeyEnabled>false</BucketKeyEnabled>
</Rule>
</ServerSideEncryptionConfiguration>CLI command
aws s3api get-bucket-encryption --bucket my-bucketGetBucketLifecycleConfiguration
This operation returns information about the lifecycle configuration set on the bucket.
Sample request
GET /?lifecycle HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Authorization: authorization stringSample response
HTTP/1.1 200 OK
x-amz-id-2: txda274593e2dc4974a82cc-005cdbe130
x-amz-request-id: txda274593e2dc4974a82cc-005cdbe130
Date: Wed, 15 May 2019 09:51:44 GMT
Content-Length: 238
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ExampleRule</ID>
<Filter>
<Prefix>documents/</Prefix>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>30</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>GetBucketLocation
This operation allows you to display the location constraint of a bucket.
Sample request
GET /?location HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T094149Z
Authorization: authorization stringSample response
<?xml version='1.0' encoding='UTF-8'?>
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">nl-ams</LocationConstraint>'CLI command
aws s3api get-bucket-location --bucket my-bucketListObjectVersions
This operation allows you to return metadata about all the versions of objects in a bucket.
Sample request
GET /?versions HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T100211ZSample 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>CLI Command
aws s3api list-object-versions --bucket my-bucketGetBucketPolicy
This operation returns the policy of a specified bucket.
Sample request
GET /my-bucket?policy HTTP/1.1Sample response:
{
"Policy": "{\"Version\": \"2023-04-17\", \"Statement\": [{\"Action\": [\"s3:GetObject\"], \"Principal\": {\"SCW\": [\"<APPLICATION_ID>\"]}, \"Resource\": [\"dst/*\"], \"Effect\": \"Allow\", \"Sid\": \"DelegateGetObject\"}]}"
}CLI command
aws s3api get-bucket-policy --bucket dst --profile client
{
"Policy": "{\"Version\": \"2023-04-17\", \"Statement\": [{\"Action\": [\"s3:GetObject\"], \"Principal\": {\"SCW\": [\"<APPLICATION_ID>\"]}, \"Resource\": [\"dst/*\"], \"Effect\": \"Allow\", \"Sid\": \"DelegateGetObject\"}]}"
}GetBucketTagging
This operation allows you to the tag set of the specified bucket.
Sample 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/plainSample 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>GetBucketVersioning
This operation allows you to return the versioning state of a bucket.
Sample 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/plainSample response
<VersioningConfiguration xmlns="http://s3.nl-ams.scw.cloud/bucketname/doc/2006-03-01/">
<Status>Enabled</Status>
</VersioningConfiguration>CLI command
aws s3api get-bucket-versioning --bucket BucketNameGetBucketWebsite
This operation returns information about the configuration of your bucket website.
Sample request
GET /my-bucket?website HTTP/1.1CLI command
aws s3api get-bucket-website --bucket <my-bucket>HeadBucket
This operation can be used to determine if a bucket exists and if you have permission to access it.
Sample 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 stringCLI command
aws s3api head-bucket --bucket BucketNameListObjects
This operation allows to return some or all (up to 1,000) of the objects in a bucket.
Sample request
GET / HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloudSample 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>CLI command
aws s3api list-objects-v2 --bucket my-bucketPutBucketAcl
This operation allows you to configure the Access Control List (ACL) of a bucket.
Sample 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>CLI command
aws s3api put-bucket-acl --bucket BucketName --acl privatePutBucketCors
This operation allows you to configure CORS settings of an existing bucket.
Sample 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>PutBucketEncryption
This operation sets the default encryption configuration (SSE-ONE or SSE-KMS) and the Bucket Key setting of an existing bucket.
Sample request
PUT /?encryption HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Content-MD5: ContentMD5
Authorization: authorization string
<?xml version="1.0" encoding="UTF-8"?>
<ServerSideEncryptionConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ApplyServerSideEncryptionByDefault>
<KMSMasterKeyID>string</KMSMasterKeyID>
<SSEAlgorithm>string</SSEAlgorithm>
</ApplyServerSideEncryptionByDefault>
<BucketKeyEnabled>boolean</BucketKeyEnabled>
</Rule>
...
</ServerSideEncryptionConfiguration>CLI command
aws s3api put-bucket-encryption \
--bucket my-bucket \
--server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'PutBucketLifecycleConfiguration
Sample request
PUT /?lifecycle HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Content-MD5: e0d656aa8bed46fe766420c6d21537d5
Authorization: authorization string
<LifecycleConfiguration>
<Rule>
<ID>ExampleRule</ID>
<Filter>
<Prefix>documents/</Prefix>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>30</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>Sample response
HTTP/1.1 200 OKPutBucketTagging
This operation allows you to add a tag set to an existing bucket.
Sample 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>PutBucketVersioning
This operation allows you to set the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
Sample 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: 124Sample response
HTTP/1.1 200 OK
x-amz-id-2: tx456e25b3558449a08b406-005calf132c
x-amz-request-id: tx456e25b3558449a08b406-005calf132c
Date: Thu, 11 Apr 2019 10:13:00 GMTCLI command
aws s3api put-bucket-versioning --bucket BucketNamePutBucketPolicy
This operation applies an Object Storage bucket policy to an Object Storage bucket.
Sample request
PUT /my-bucket?policy HTTP/1.1{
"Version": "2023-04-17",
"Id": "MyBucketPolicy",
"Statement": [
{
"Sid": "DelegateAccess",
"Effect": "Allow",
"Principal":{
"SCW": "application_id:<APPLICATION_ID>"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"<BUCKET_NAME>",
"<BUCKET_NAME>/*"
]
}
]
}CLI command
Create the file bucket-policy.json with the following content:
{
"Version": "2023-04-17",
"Id": "MyBucketPolicy",
"Statement": [
{
"Sid": "DelegateAccess",
"Effect": "Allow",
"Principal": {
"SCW": "application_id:<APPLICATION_ID>"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"<BUCKET_NAME>",
"<BUCKET_NAME>/*"
]
}
]
}Then, run the command:
aws s3api put-bucket-policy --bucket <BUCKET_NAME> --policy file://bucket-policy.jsonPutBucketWebsite
This operation enables the bucket website feature and sets the basic configuration for the website.
PUT /my-bucket?website HTTP/1.1
{
"IndexDocument" : {
"Suffix": "index.html"
},
"ErrorDocument": {
"Key": "error.html"
}
}To enable the bucket website feature via the CLI, you can create a file called bucket-website.json with the index and error page names.
{
"IndexDocument" : {
"Suffix": "index.html"
},
"ErrorDocument": {
"Key": "error.html"
}
}Then, upload it using the following command:
aws s3api put-bucket-website --bucket <BUCKET_NAME> --website-configuration file://bucket-website.json