Skip to main content

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 typeModeSupport
Legal Hold-Yes
Object RetentionCOMPLIANCEYes
Object RetentionGOVERNANCENo

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

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

MethodSupportNotes
AbortMultipartUploadYes
CompleteMultipartUploadYes
CopyObjectYes
CreateBucketYes
CreateMultipartUploadYes
DeleteBucketYes
DeleteBucketAnalyticsConfigurationNo
DeleteBucketCorsNo
DeleteBucketEncryptionNo
DeleteBucketIntelligentTieringConfigurationNo
DeleteBucketInventoryConfigurationNo
DeleteBucketLifecycleYes
DeleteBucketMetricsConfigurationNo
DeleteBucketOwnershipControlsYes
DeleteBucketPolicyNo
DeleteBucketReplicationNo
DeleteBucketTaggingNo
DeleteBucketWebsiteNo
DeleteObjectYes
DeleteObjectsYes
DeleteObjectTaggingNo
DeletePublicAccessBlockNo
GetBucketAccelerateConfigurationNo
GetBucketAclYes
GetBucketAnalyticsConfigurationNo
GetBucketCorsNo
GetBucketEncryptionNo
GetBucketIntelligentTieringConfigurationNo
GetBucketInventoryConfigurationNo
GetBucketLifecycleNo
GetBucketLifecycleConfigurationYesNoncurrentVersionExpiration only
GetBucketLocationYes
GetBucketLoggingNo
GetBucketMetricsConfigurationNo
GetBucketNotificationNo
GetBucketNotificationConfigurationNo
GetBucketOwnershipControlsYes
GetBucketPolicyNo
GetBucketPolicyStatusNo
GetBucketReplicationNo
GetBucketRequestPaymentNo
GetBucketTaggingNo
GetBucketVersioningYes
GetBucketWebsiteNo
GetObjectYes
GetObjectAclYes
GetObjectAttributesNo
GetObjectLegalHoldYes
GetObjectLockConfigurationYes
GetObjectRetentionYes
GetObjectTaggingNoMocked response
GetObjectTorrentNo
GetPublicAccessBlockNo
HeadBucketYes
HeadObjectYes
ListBucketAnalyticsConfigurationsNo
ListBucketIntelligentTieringConfigurationsNo
ListBucketInventoryConfigurationsNo
ListBucketMetricsConfigurationsNo
ListBucketsYes
ListMultipartUploadsYes
ListObjectsYes
ListObjectsV2Yes
ListObjectVersionsYes
ListPartsYes
PutBucketAccelerateConfigurationNo
PutBucketAclYes
PutBucketAnalyticsConfigurationNo
PutBucketCorsNo
PutBucketEncryptionNo
PutBucketIntelligentTieringConfigurationNo
PutBucketInventoryConfigurationNo
PutBucketLifecycleNo
PutBucketLifecycleConfigurationYesNoncurrentVersionExpiration only
PutBucketLoggingNo
PutBucketMetricsConfigurationNo
PutBucketNotificationNo
PutBucketNotificationConfigurationNo
PutBucketOwnershipControlsYes
PutBucketPolicyNo
PutBucketReplicationNo
PutBucketRequestPaymentNo
PutBucketTaggingNo
PutBucketVersioningYes
PutBucketWebsiteNo
PutObjectYes
PutObjectAclYes
PutObjectLegalHoldYes
PutObjectLockConfigurationYes
PutObjectRetentionYes
PutObjectTaggingNo
PutPublicAccessBlockNo
RestoreObjectNo
SelectObjectContentNo
UploadPartYes
UploadPartCopyNo
WriteGetObjectResponseNo