Sonic S3 API compatibility
Sonic supports the following S3 APIs:
Authentication
All requests towards Sonic's S3 endpoints need to be authenticated with secret and access keys. Note that for each CDN push zone that you create, a new bucket with separate keys will be created.
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.
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:
• Your secret and access keys will be required for each request made towards the S3 endpoint, including GET
requests.
• On the other hand, all stored objects will be accessible as direct links via your CDN hostname without the need for any authorization.
This policy allows only an authorized user to manage, list, upload and delete objects, while allowing objects to be served globally to any number of users via the CDN hostname, as long as they have a direct link to the object.
Notes on API limits
Sonic currently does not enforce API limits, except for GET
requests.