S3 API Supported Actions

DanubeData Object Storage provides S3-compatible storage powered by Ceph RGW. The following tables list supported S3 API actions and known limitations.

Bucket Operations

ActionStatusLimitations
CreateBucketNot supportedBuckets must be created via the DanubeData dashboard or API
DeleteBucketNot supportedBuckets must be deleted via the DanubeData dashboard or API
HeadBucketSupported
ListBucketsSupported
GetBucketLocationSupported
GetBucketVersioning / PutBucketVersioningSupported
GetBucketPolicy / PutBucketPolicySupported
GetBucketCors / PutBucketCors / DeleteBucketCorsSupported
GetBucketLifecycleConfiguration / PutBucketLifecycleConfigurationSupported
GetBucketTagging / PutBucketTagging / DeleteBucketTaggingSupported
GetBucketEncryption / PutBucketEncryption / DeleteBucketEncryptionSupportedSSE-S3 (AES-256) and SSE-KMS
GetBucketAcl / PutBucketAclSupported
GetBucketRequestPaymentNot supported
GetBucketNotificationNot supported
GetBucketAccelerateConfigurationNot supported
GetBucketWebsiteNot supported
GetBucketAnalyticsConfigurationNot supported
GetBucketIntelligentTieringConfigurationNot supported
GetBucketInventoryConfigurationNot supported
GetBucketLoggingNot supported
GetBucketMetricsConfigurationNot supported
GetBucketOwnershipControlsNot supported
GetBucketReplicationNot supported

Object Operations

ActionStatusLimitations
PutObjectSupportedMax 5 TB per object
GetObjectSupported
HeadObjectSupported
DeleteObjectSupported
DeleteObjects (multi-delete)Supported
CopyObjectSupportedWorks on server-side encrypted objects
ListObjects / ListObjectsV2Supported
GetObjectTagging / PutObjectTagging / DeleteObjectTaggingSupported
GetObjectAcl / PutObjectAclSupported
RestoreObjectNot supported
SelectObjectContentNot supported
GetObjectTorrentNot supported
GetObjectAttributesNot supported

Object Lock Operations

Object Lock provides write-once-read-many (WORM) retention. See Object Storage security for how modes and retention work.

ActionStatusLimitations
GetObjectLockConfigurationSupportedObject Lock must be enabled when the bucket is created; it cannot be added to an existing bucket
PutObjectLockConfigurationSupportedRequires a team-wide access key; bucket-scoped keys cannot change the bucket's default retention. Set it from the bucket's Settings tab instead
GetObjectRetention / PutObjectRetentionSupportedGOVERNANCE and COMPLIANCE modes. A scoped key can add or extend a retention, never shorten one
GetObjectLegalHold / PutObjectLegalHoldSupported
BypassGovernanceRetentionTeam-wide keys onlyBucket-scoped keys can never delete a locked version before its retention expires

Multipart Upload Operations

ActionStatusLimitations
CreateMultipartUploadSupported
UploadPartSupported
UploadPartCopyPartialSee encryption limitation below
CompleteMultipartUploadSupported
AbortMultipartUploadSupported
ListMultipartUploadsSupported
ListPartsSupported

Server-Side Encryption

ActionStatusLimitations
SSE-S3 (AES-256)SupportedManaged encryption keys via Vault
SSE-KMSSupportedCustomer-managed keys via Vault Transit
SSE-C (customer-provided keys)SupportedClient provides key with each request

Presigned URLs

ActionStatusLimitations
Presigned GET (download)SupportedConfigurable expiration
Presigned PUT (upload)SupportedConfigurable expiration

Known Limitations

UploadPartCopy and Server-Side Encryption

UploadPartCopy is not supported for server-side encrypted objects. This applies to all server-side encryption methods (SSE-S3, SSE-KMS, and SSE-C). Attempting a multipart server-side copy of an encrypted object returns a 501 Not Implemented error.

CopyObject is no longer affected. Server-side copies of encrypted objects work normally as of the 2026-08-07 storage platform update, which shipped the upstream fix (Ceph PR #63794, released in Ceph v20.2.3). Only the multipart copy path remains outstanding.

The remaining limitation is tracked upstream in Ceph Tracker #23264.

Impact: S3 clients switch from CopyObject to the multipart copy path for large objects, so move, rename, and metadata-update operations on encrypted objects can still fail above a certain size. The threshold is client-specific — the AWS CLI defaults to 8 MB (multipart_threshold) — and above 5 GB multipart copy is the only option, since CopyObject cannot be used for objects larger than that.

Workarounds:

  1. Raise the client's multipart threshold — Keeping objects under the threshold routes them through CopyObject, which now works on encrypted objects. For the AWS CLI: aws configure set default.s3.multipart_threshold 5GB.
  2. Client-side encryption — Encrypt data before uploading. The storage backend sees unencrypted blobs, so all copy operations work normally. Tools like rclone (--crypt), Cryptomator, restic, and Duplicati support this.
  3. Download and re-upload — Instead of a server-side copy, download the object and upload it to the new location.

We are tracking the remaining upstream fix and will update this page when it is resolved.


Questions? Contact support at support@danubedata.ro