S3 APIs
Intro
The Cubbit S3 Gateway supports most of the AWS S3 RESTful APIs used by the AWS SDKs (like aws-sdk-js, aws-sdk-go, etc), by the official AWS Command Line Interface and by all the S3 compatible clients.
This implies that the aforementioned tools can be used with Cubbit simply by configuring them to use the right endpoint, i.e. https://s3.cubbit.eu. For example, in this documentation, you can find instructions on how to setup the AWS CLI.
The following sections describe broadly what features are currently supported and how closely they reflect the original AWS S3 specification. The final section gives a detailed view of what API methods are supported.
Bucket management
Creating and deleting new buckets is supported, along with listing their content.
Object management
Uploading, downloading, copying, and deleting objects are fully supported operations.
Multipart Upload
Multipart Uploads are fully supported. More information about the multipart upload can be found here.
Versioning
Versioning can be activated on a bucket and can be suspended. All operations related to versioned objects, like creating new versions, listing, or deleting them are supported. More information on bucket versioning can be found here.
Object Lock
The Object Lock feature is fully supported. The following table summarizes the various lock methods.
Lock type | Mode | Support |
---|---|---|
Legal Hold | - | Yes |
Object Retention | COMPLIANCE | Yes |
Object Retention | GOVERNANCE | Yes |
ACL
ACL APIs are supported.
The grantee may be one of the following:
- a user (by their ID or their email)
- a predefined group
The supported predefined groups are:
- AllUsers
- AuthenticatedUsers
It should also be noted that:
- read and write operations are not yet supported in a public-read or public-read-write scenario
- the implementation of these groups might slightly change in the future
The following canned ACLs are allowed:
- private
- public-read (with the aforementioned limitations)
- public-read-write (with the aforementioned limitations)
- authenticated-read
- bucket-owner-read
- bucket-owner-full-control
More information can be found here.
Lifecycle Configuration
The Lifecycle Configuration feature is partially supported.
A single configuration rule is allowed. The only configuration rule supported is the NoncurrentVersionExpiration with no filters.
More information can be found here.
Bucket Policy
Not supported.
Object Tagging
Not supported.
Object Lifecycle
Not supported.
API Compatibility Table
Method | Support | Notes |
---|---|---|
AbortMultipartUpload | Yes | |
CompleteMultipartUpload | Yes | |
CopyObject | Yes | |
CreateBucket | Yes | |
CreateMultipartUpload | Yes | |
DeleteBucket | Yes | |
DeleteBucketAnalyticsConfiguration | No | |
DeleteBucketCors | No | |
DeleteBucketEncryption | No | |
DeleteBucketIntelligentTieringConfiguration | No | |
DeleteBucketInventoryConfiguration | No | |
DeleteBucketLifecycle | Yes | |
DeleteBucketMetricsConfiguration | No | |
DeleteBucketOwnershipControls | Yes | |
DeleteBucketPolicy | No | |
DeleteBucketReplication | No | |
DeleteBucketTagging | No | |
DeleteBucketWebsite | No | |
DeleteObject | Yes | |
DeleteObjects | Yes | |
DeleteObjectTagging | No | |
DeletePublicAccessBlock | No | |
GetBucketAccelerateConfiguration | No | |
GetBucketAcl | Yes | |
GetBucketAnalyticsConfiguration | No | |
GetBucketCors | No | |
GetBucketEncryption | No | |
GetBucketIntelligentTieringConfiguration | No | |
GetBucketInventoryConfiguration | No | |
GetBucketLifecycle | No | |
GetBucketLifecycleConfiguration | Yes | NoncurrentVersionExpiration only |
GetBucketLocation | Yes | |
GetBucketLogging | No | |
GetBucketMetricsConfiguration | No | |
GetBucketNotification | No | |
GetBucketNotificationConfiguration | No | |
GetBucketOwnershipControls | Yes | |
GetBucketPolicy | No | |
GetBucketPolicyStatus | No | |
GetBucketReplication | No | |
GetBucketRequestPayment | No | |
GetBucketTagging | No | |
GetBucketVersioning | Yes | |
GetBucketWebsite | No | |
GetObject | Yes | |
GetObjectAcl | Yes | |
GetObjectAttributes | No | |
GetObjectLegalHold | Yes | |
GetObjectLockConfiguration | Yes | |
GetObjectRetention | Yes | |
GetObjectTagging | No | Mocked response |
GetObjectTorrent | No | |
GetPublicAccessBlock | No | |
HeadBucket | Yes | |
HeadObject | Yes | |
ListBucketAnalyticsConfigurations | No | |
ListBucketIntelligentTieringConfigurations | No | |
ListBucketInventoryConfigurations | No | |
ListBucketMetricsConfigurations | No | |
ListBuckets | Yes | |
ListMultipartUploads | Yes | |
ListObjects | Yes | |
ListObjectsV2 | Yes | |
ListObjectVersions | Yes | |
ListParts | Yes | |
PutBucketAccelerateConfiguration | No | |
PutBucketAcl | Yes | |
PutBucketAnalyticsConfiguration | No | |
PutBucketCors | No | |
PutBucketEncryption | No | |
PutBucketIntelligentTieringConfiguration | No | |
PutBucketInventoryConfiguration | No | |
PutBucketLifecycle | No | |
PutBucketLifecycleConfiguration | Yes | NoncurrentVersionExpiration only |
PutBucketLogging | No | |
PutBucketMetricsConfiguration | No | |
PutBucketNotification | No | |
PutBucketNotificationConfiguration | No | |
PutBucketOwnershipControls | Yes | |
PutBucketPolicy | No | |
PutBucketReplication | No | |
PutBucketRequestPayment | No | |
PutBucketTagging | No | |
PutBucketVersioning | Yes | |
PutBucketWebsite | No | |
PutObject | Yes | |
PutObjectAcl | Yes | |
PutObjectLegalHold | Yes | |
PutObjectLockConfiguration | Yes | |
PutObjectRetention | Yes | |
PutObjectTagging | No | |
PutPublicAccessBlock | No | |
RestoreObject | No | |
SelectObjectContent | No | |
UploadPart | Yes | |
UploadPartCopy | Yes | |
WriteGetObjectResponse | No |