Simple Object Storage Overview
Simple Object Storage (or SOS) is a storage service over the HTTP(s) protocol by Exoscale.
Simple Object Storage service has the main features of an S3 compatible storage:
- Available in multiple locations
- High data durability
- Supported in a large number of tools, libraries, languages
S3 Unsupported Features
While we strive to maintain full compatibility with the S3 API, we do not support all S3 features. Currently, the following functionality cannot be used on Exoscale:
- Object Tagging
- Object Lifecycle Management
- Bucket Policy
- Bucket access logging
- Bucket event notification
- Encryption should be performed on client side.
The following table shows which limits are applied to SOS compared to AWS.
|Usage||Limit||AWS S3 equivalent|
|Maximum number of buckets||20 (service limit upgradeable)||100|
|Maximum object size||4TiB||5TiB|
|Maximum number of parts in a multipart upload||10000||10000|
|Minimum part size||5MiB (does not apply to last part)||5MiB (does not apply to last part)|
|Maximum part size||5GiB||5GiB|
|Maximum number of objects in a bucket||unlimited||unlimited|
|Maximum number of versions per object||1000||unlimited|
|Minimum billed size||128kb||128kb|
|Maximum metadata size||2kb||2kb|
|Maximum tags per object||10||10|
|Maximum tag key size||128 char||128 char|
|Maximum tag value size||256 char||256 char|
|Maximum bucket name size||64 char (DNS compatible)||64 char (DNS compatible)|
|Maximum key name size||1024 byte UTF-8 string||1024 byte UTF-8 string|
|Maximum number of objects per delete-objects operation||1000||1000|
|## Advanced Options|
Buckets and objects support advanced options:
- ACL for buckets and objects
- CDN caching for buckets
- CORS for buckets
- Metadata for objects
- Bucket versioning and object lock
- Server side encryption with customer key
Those options are available through the API. ACL, CORS and Metadata can also be configured through the Portal.
With Access Control Lists (ACLs), you can define specific permissions at the bucket level and single object level for a granular access policy. ACLs are not inherited from parent objects.
ACLs let you manage access to buckets and objects with read, write, read ACP, write ACP, and full control (read + write) rights. You can make your objects accessible by their public URL, your buckets writable by your team, and so on.
For in-depth details about ACLs, you can look at the SOS ACL documentation.
With CORS (Cross-Origin Resource Sharing) your browser-based applications can perform actions on buckets and objects contained in a bucket. CORS is available only at the bucket level, and CORS configuration is applied to all the objects contained in a bucket.
The SOS CORS documentation has a breakdown and examples.
Each object contained in a bucket can be tagged with key-value pairs. This metadata is presented through HTTP headers on SOS requests and responses.
You can read the SOS Metadata documentation for more information and examples.
Both client side encryption and SSE-C are supported encryption options with SOS. To learn more about client side encryption, refer to the client library documentation.
For server side encryption details you can read the SSE-C documentation for more information and examples.