Supported APIs
The Cubbit S3 Gateway supports most of the AWS S3 RESTful API which is 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, here you can find 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 new buckets and deleting them is of course supported, as well as listing their content.
Object management
Uploading, downloading, copying, and deleting objects are fully supported operations.
Multipart Upload
Multipart uploads are supported with the only exception of the UploadPartCopy operation which is not currently implemented.
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, and listing or deleting them are supported.
More information about bucket versioning can be found here.
Object Locking
The Object Lock feature is partially supported.
The following table summarizes what kind of locks are supported.
Lock type | Mode | Support |
---|---|---|
Legal Hold | - | Yes |
Object Retention | COMPLIANCE | Yes |
Object Retention | GOVERNANCE | No |
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
orpublic-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
Further 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.
Further 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 | No | |
WriteGetObjectResponse | No |