Skip to main content

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 supported, except for the UploadPartCopy operation. 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 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

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

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