VK Cloud logo
Updated at April 15, 2024   08:50 AM

Bucket

Operations with Buckets:

  • Create - Create bucket
  • ListBuckets - Get a list of buckets
  • HeadBucket - Check if a bucket exists and has access to it
  • ListObjects - Get a list of bucket objects
  • DeleteBucket - Delete bucket

All operations with buckets are characterized by typical error messages, request headers and response headers. If the operation has special error messages, request or response headers, this will be indicated in the description of the operation.

CreateBucket

The PUT operation creates a new bucket. To create a bucket, you need to register on the VK Cloud platform and obtain an access key to authorize requests. Bucket creation using anonymous requests is not possible. The initiator of the bucket creation request automatically becomes its owner.

When using the operation to create a bucket, you can specify projects or groups that need to be granted certain rights to the bucket. There are two ways to grant rights using request headers:

  • Specifying the prepared ACL in the request using the x-amz-acl request header.
  • Explicitly specifying access rights using the x-amz-grant-read, x-amz-grant-write, x-amz-grant-read-acp, x-amz-grant-write-acp, x-amz-grant- headers full-control.

You can use a ready-made ACL or specify the access rights explicitly, but you cannot use both methods at the same time.

Inquiry:

PUT / HTTP / 1.1Host: my-test-bucket1.hb.vkcs.cloudx-amz-acl: public-readx-amz-content-sha256: c6f1fc479f5f690c443b73a258aacc06ddad09eca0b001e9640ff2cd56fe5710x-amz-date: 20200831T173143ZAuthorization: AWS4-HMAC-SHA256 Credential = II5JDQBAN3JYM4DNEB6C / 20200831 / ru-msk / s3 / aws4_request, SignedHeaders = host; x-amz-acl; x-amz-content-sha256; x-amz-date, Signature = 6cab03bef74a80a0441ab7fd33c829a2cdb46bba07e82da518cdb78ac238fda5<CreateBucketConfiguration><LocationConstraint> ru-msk </LocationConstraint></CreateBucketConfiguration>

Answer:

HTTP / 1.1 200 OKDate: Mon, 31 Aug 2020 17:31:43 GMTContent-Length: 0Content-Type: text / plain; charset = utf-8Connection: close

ListBuckets

The GET operation will return a list of buckets existing in the project.

Inquiry:

GET / HTTP / 1.1Host: hb.vkcs.cloudx-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855x-amz-date: 20200831T183940ZAuthorization: AWS4-HMAC-SHA256 Credential = II5JDQBAN3JYM4DNEB6C / 20200831 / ru-msk / s3 / aws4_request, SignedHeaders = host; x-amz-content-sha256; x-amz-date, Signature = 245eb867ab4dba65c71

Answer:

HTTP / 1.1 200 OKx-amz-request-id: tx000000000000002ba2427-0059651b6d-1268c-ru-mskaDate: Mon, 31 Aug 2020 17:31:43 GMTContent-Length: 523Content-Type: text / plainConnection: close<? xml version = "1.0" encoding = "UTF-8"?><ListAllMyBucketsResult xmlns = "http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID> 6174283 </ID><DisplayName> 6174283 </DisplayName></Owner><Buckets><Bucket><Name> static-images </Name><CreationDate> 2020-08-31T18: 37: 48.157Z </CreationDate></Bucket><Buckets><Bucket><Name> log-files </Name><CreationDate> 2020-08-31T18: 37: 48.157Z </CreationDate></Bucket></Buckets></ListAllMyBucketsResult>

ListObjects

The GET operation returns some or all (up to 1000) objects in the bucket. You can use query parameters as selection criteria to return a subset of objects in a bucket.

To successfully complete the operation, you must have the rights to read the bucket (READ).

Inquiry:

GET / HTTP / 1.1Host: my-test-bucket1.hb.vkcs.cloudx-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855x-amz-date: 20200831T172613ZAuthorization: AWS4-HMAC-SHA256 Credential = II5JDQBAN3JYM4DNEB6C / 20200831 / ru-msk / s3 / aws4_request, SignedHeaders = host; x-amz-content-sha256; x-amz-date, Signature = de1bf77684d915c74

Answer:

HTTP / 1.1 200 OKx-amz-request-id: tx00000000000000029ac87-0059690330-8d1a-ru-mskaDate: Mon, 31 Aug 2020 17:31:43 GMTContent-Length: 775Content-Type: application / xmlConnection: close<? xml version = "1.0" encoding = "UTF-8"?><ListBucketResult xmlns = "http://s3.amazonaws.com/doc/2006-03-01/"><Name> static-images </Name><Prefix /><MaxKeys> 1000 </MaxKeys><IsTruncated> false </IsTruncated><Contents><Key> example.txt </Key><LastModified> 2020-08-31T18: 40: 46.777Z </LastModified><ETag> "b3a92f49e7ae64acbf6b3e76f2040f5e" </ETag><Size> 14 </Size><StorageClass> STANDARD </StorageClass><Owner><ID> 6174283 </ID><DisplayName> 6174283 </DisplayName></Owner></Contents><Contents><Key> sammy.png </Key><LastModified> 2020-08-31T17: 44: 03.597Z </LastModified><ETag> "fb08934ef619f205f272b0adfd6c018c" </ETag><Size> 35369 </Size><StorageClass> STANDARD </StorageClass><Owner><ID> 6174283 </ID><DisplayName> 6174283 </DisplayName></Owner></Contents></ListBucketResult>

HeadBucket

The operation is used to determine whether a bucket exists and whether it has permission to access it. The operation returns a 200 OK message if the bucket exists and you have permission to access it. Otherwise, this operation may return messages such as "404 Not Found" or "403 Forbidden".

Inquiry:

HEAD / HTTP / 1.1Host: my-test-bucket1.hb.vkcs.cloudx-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855x-amz-date: 20170714T185156ZAuthorization: AWS4-HMAC-SHA256 Credential = II5JDQBAN3JYM4DNEB6C / 20200831 / ru-msk / s3 / aws4_request, SignedHeaders = host; x-amz-content-sha256; x-amz-date, Signature = e3b4551b249278fc34ae

Answer:

HTTP / 1.1 200 OKx-amz-id-2: JuKZqmXuiwFeDQxhD7M8KtsKobSzWA1QEjLbTMTagkKdBX2z7Il / jGhDeJ3j6s80x-amz-request-id: 32FE2CEB32F5EE25x-amz-bucket-region: ru-mskDate: Mon, 31 Aug 2020 21:34:56 GMTConnection: close

DeleteBucket

DELETE operations delete the bucket specified in the URI. Success of the operation will be indicated by receiving 204 (No content) as the response code.

If 409 (BucketNotEmpty) is received as a response code, it means there are objects in the bucket. You must remove all objects from the bucket (move or delete) before you can remove the bucket itself.

Inquiry:

DELETE / HTTP / 1.1Host: my-test-bucket1.hb.vkcs.cloudx-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855x-amz-date: 20170710T181321ZAuthorization: AWS4-HMAC-SHA256 Credential = II5JDQBAN3JYM4DNEB6C / 20200831 / ru-msk / s3 / aws4_request, SignedHeaders = host; x-amz-content-sha256; x-amz-date, Signature = b0558a259d9dbbcdate, Signature = b0558a259d9794

Answer:

HTTP / 1.1 204 No ContentDate: Mon, 31 Aug 2020 18:13:21 GMTConnection: close