Storj IconSTORJ | DCS Docs
Supported S3 Commands

Supported S3 Commands #

The Storj DCS S3-compatible Gateway supports a RESTful API that is compatible with the basic data access model of the Amazon S3 API.

The Storj DCS S3 Gateway is well suited for many application architectures, but since the S3 standard was designed for centralized storage, there are a few areas where a decentralized architecture requires a different approach:

API FeaturesStatus (support/not supported)Remarks
List BucketsSupported
ListObjectsSupportedObject listing does not return a traditionally sorted list because keys are stored encrypted. However, the list order is deterministic.
Delete BucketSupported
Create BucketSupported​Note: Bucket names must follow the naming convention for the S3 standard. The S3 standard also requires a region be specified, but we ignore this attribute as data is globally distributed as opposed to stored in a single, regional data center.
Bucket LifecycleNot Supported​We support a per-object lifecycle throughout. Configuring an object’s “time-to-live” is done at upload time.
Policy (Buckets, Objects)Not Supported
Bucket WebsiteNot SupportedBucket Website is not supported, but it is easy to host a static website using the Storj DCS Gateway
Bucket ACLs (Get, Put)Not SupportedThis part of the API is not supported, but granular access controls may be encoded into your S3 credentials generated in the Satellite Admin Console at the bucket, path prefix, action permission (read, write, list, delete, and date/time)
Bucket LocationNot Supported​Error handling related to this function is addressed in a basic implementation.
Bucket NotificationNot Supported
Bucket Object VersionsNot Supported
Get Bucket Info (HEAD)Supported
Bucket Request PaymentNot Supported​We do not have requester pays functionality
Put ObjectSupported
Delete ObjectSupported
Get ObjectSupported
Object ACLs (Get, Put)Not SupportedSupported through restricted access grant only, configuration needed on the gateway
Get Object Info (HEAD)Supported​Content
Copy ObjectSupported
Object TaggingNot Supported
Multipart UploadsSupported
Create Multipart UploadSupported
Upload PartSupported
Upload Part (Copy)Not Supported
Complete Multipart UploadSupported
Abort Multipart UploadSupported
List PartsSupported
List Multipart UploadsSupported

Since all data is encrypted, it’s important to be deliberate about whether and when to use multiple encryption keys.