Supported S3 Requests
VAST Cluster supports a subset of S3 API actions. They are listed below with references to guidelines for how to call them using some specific client interfaces.
Task | S3 Request | S3 Action | s3cmd Command | Boto 3 S3 Resource Usage | Boto 3 S3 Client Method |
|---|---|---|---|---|---|
List the buckets on the S3 server | ListBuckets | ListAllMyBuckets | |||
Create a bucket | CreateBucket | CreateBucket | |||
List the objects in bucket | ListBucket or ListObjectsV2 (revised version) | ListBucket | |||
Verify if bucket exists and if you have permission to access it | ListBucket HeadBucket | N/A | |||
Delete a bucket | DeleteBucket | DeleteBucket | |||
Return the region in which the bucket resides | GetBucketLocation | GetBucketLocation | |||
| |||||
Set the ACL of a bucket | PutBucketAcl | PutBucketAcl | |||
Return the ACL of a bucket | GetBucketAcl | GetBucketAcl | |||
Set tags on a bucket | PutBucketTagging | PutBucketTagging | |||
Return the tag set associated with a bucket. | GetBucketTagging | GetBucketTagging | |||
Delete the tags from a bucket | DeleteBucketTagging | PutBucketTagging | |||
Create an object | PutObject | PutObject | |||
Create a copy of an object | CopyObject | GetObject & PutObject | |||
Retrieve an object (for versioned objects, see below, Object Versioning Operations) | GetObject | GetObject | |||
Retrieve metadata of an object without returning object itself | HeadObject | GetObject | |||
Delete an object (for versioned objects, see below, Object Versioning Operations) | DeleteObject | DeleteObject | |||
Delete multiple objects in a bucket | DeleteObjects | DeleteObject | N/A | ||
| |||||
Set ACL permissions on an existing object | PutObjectAcl | PutObjectAcl | |||
Return the ACL of an object (for versioned objects, see below, Object Versioning Operations) | GetObjectAcl | GetObjectAcl | |||
Initiate upload of a file in multiple parts (multipart upload) | CreateMultipartUpload | PutObject | |||
Abort a multipart upload | AbortMultipartUpload | AbortMultipartUpload | |||
Complete a multipart upload | CompleteMultipartUpload | PutObject | Automatically executed with s3cmd put for multipart uploads. | ||
Upload a part in a multipart upload. | UploadPart | PutObject | Automatically executed with s3cmd put for multipart uploads. | ||
Upload a part by copying data from an existing object as data source. | UploadPartCopy | PutObject, GetObject | N/A | Upload a part by copying data from an existing object as data source | |
List the parts that have been uploaded for a specific multipart upload. | ListParts | ListMulitpartUploadParts | |||
List multipart uploads | ListMultipartUploads | ListBucketMultipartUploads | |||
| |||||
Set versioning state on a bucket
| PutBucketVersion | PutBucketVersion | PutBucketVersioning | ||
Get versioning state of a bucket | GetBucketVersion | GetBucketVersion | GetBucketVersioning | ||
Return metadata about all versions of the objects in a bucket | ListObjectVersions | ListBucketVersions | N/A | ||
Get objects that are versioned | GetObject | GetObjectVersion | |||
Delete object(s) that are versioned | DeleteObject. DeleteObjects | DeleteObjectVersion | |||
Return the ACL of an object that is versioned | GetObjectAcl | GetObjectVersionAcl | |||
| |||||
Place an object lock configuration on a bucket. | PutObjectLockConfiguration | PutBucketObjectLockConfiguration | N/A | ||
Get the object lock configuration for a bucket. | GetObjectLockConfiguration | GetBucketObjectLockConfiguration | N/A | ||
Place an object retention configuration on an object. | PutObjectRetention | PutObjectRetention | N/A | ||
Get an object's retention settings. | GetObjectRetention | GetObjectRetention | N/A | ||
Apply a legal hold configuration to an object. | PutObjectLegalHold | PutObjectLegalHold | N/A | ||
Get an object's current legal hold status. | GetObjectLegalHold | GetObjectLegalHold | N/A | ||
Set a supplied tag-set to an object that already exists in a bucket | PutObjectTagging | PutObjectTagging | See Tagging Examples | ||
Return the tag-set of an object | GetObjectTagging | GetObjectTagging | |||
Remove the tag-set from an object | DeleteObjectTagging | DeleteObjectTagging | |||
Set tags on a bucket | PutBucketTagging | PutBucketTagging | |||
Return the tag-set associated with a bucket | GetBucketTagging | GetBucketTagging | |||
Delete the tag-set from a bucket | DeleteBucketTagging | DeleteBucketTagging | |||
Supported Custom Headers
The following VAST custom headers are supported with the following request types:
Custom Header | Request | Feature | Header description |
|---|---|---|---|
x-amz-delete-contents: true | Delete | Deletes objects asynchronously by moving them into VAST trash folder. | |
x-amz-copy-disposition: replace | CopyObject | Renames an object |