Sonic S3 API compatibility

Object operations

PutObject
GetObject
HeadObject
CopyObject
DeleteObject
ListObjectsV2
ListObjectsV1
DeleteMultipleObjects
PostPolicy


Object Tagging

GetObjectTagging
PutObjectTagging
DeleteObjectTagging


Multipart upload operations

NewMultipartUpload
CompleteMultipartUpload
AbortMultipartUpload
ListMultipartUploads
PutObjectPart
CopyObjectPart
ListObjectParts

Additionally supported features and feature differences

• Both Sonic S3 endpoints and PUSHR's CDN support byte range requests which are not supported by AWS. 

• In Sonic DeleteObject can also delete folders

• Same path for both file and folder is not supported by Sonic

Unsupported APIs

Bucket policies are not supported. Please see below.

Notes on object retrieval

Sonic introduces a limited free egress API policy for content management purposes. This means that you can download your own content directly from the S3 endpoint to avoid being billed for CDN egress traffic. However, GET requests made directly to the S3 endpoints will be limited in speed and number of allowed connections. To deliver your stored objects to the world you must serve them over the CDN hostname. 

The limited free egress policy does not apply when the Sonic storage space has been created with the virtual-host style setting. 

Notes on bucket policies

Sonic does not support editing of bucket policies. There is one default mixed access policy that applies to each bucket. It has the following characteristics:

• With virtal-host style buckets, unauthenticated requests can download files, but only authenticated requests write, list and tag objects. This behaviour is equivalent to disabling AWS's Block Public Access setting.

• With path-style buckets, your secret and access keys will be required for each request made towards the S3 endpoint, including GET requests.

• With path-style buckets, all stored objects will be accessible as direct links via your CDN hostname without the need for any authorization.

Notes on API limits

Sonic currently does not enforce API limits and each bucket comes with unlimited free requests.