Overview
Exoscale’s Simple Object Storage (SOS) is a highly durable, S3-compatible service that offers seamless data accessibility across various locations over the HTTP(s) protocol, supporting a diverse range of tools, libraries, and programming languages.
Terminlogy
In the realm of object storage, particularly when discussing S3-compatible storage, there are several key terms to understand:
- Bucket
A container for storing objects. Each bucket can store unlimited objects. - Object
The fundamental entities stored . Objects consist of data, metadata, and a unique identifier within a bucket. - Key
The unique identifier for an object within a bucket. It’s essentially the object’s name, and each object in a bucket can be uniquel addressed using the combination of the bucket name and the key. - Metadata
A set of name-value pairs that describe or configure the object. It can include standard HTTP headers like Content-Type an Content-Length and custom metadata defined by the user. - Access Control
Mechanisms to manage permissions for buckets and objects. This includes policies at both the bucket and object level, which defin who can access the data and what they can do with it. - Storage Class
Different classes define how the data is stored and charged, each offering different levels of availability, durability, and cost.
Features
The Simple Object Storage service, compatible with S3, offers high data durability, is accessible in multiple locations, and is supported across a variety of tools, libraries, and languages.
- Use your own S3 compatible tool
Easily integrate our S3 compatible Object Storage into any existing app or workflow, using your existing clients and libraries with no lock-in. - A Cloud native Object Storage solution
Object Storage is important when designing architecture for cloud applications for scale. Get better scalability, reliability, and speed than just storing files on the filesystem. - For any kind of data, pay only what you use
Use Object Storage for static assets, user uploads or backups. We offer a performant solution with a fair pay-per-use pricing and no hidden costs.
Object Storage features for Cloud Native implementations are:
- S3 compatible API
Easily integrate our Object Storage solution in your applications using S3 compatible libraries. You can also connect with a GUI or CLI tool. Simply set a new endpoint and credentials. - H/A Object Storage replication
We replicate data stored in our Object Storage on three different high-available nodes, in order to keep your important data safe. Our Object Storage SLA is covered by our 99.95% availability SLA. - Bucket Replication
Automatically replicate objects to one or multiple buckets across zones for disaster recovery, backup, or multi-region synchronization. - Direct HTTP/s access
Serve files directly from low latency, high bandwidth object storage via HTTP or HTTPS. Keep your own servers free to do more important things. - ACL and CORS support
Set per bucket policies to manage permissions and control access. Or configure cross origin headers to use object storage from browser based applications and websites. - Metadata support
Store additional information about your objects in key-value pairs and easily access this metadata through HTTP headers in every Object Storage response. - Keep your data in your country
All data and replicas of our Object Storage service are stored in the country of your chosen zone. Object Storage is also available in every zone across Europe. - Supported Backup Solutions
Various backup solutions are supported to let you do backups as you need - whether it’s services with a simple, fast setup, to solutions with enterprise-grade features. Read more - Object lock and versioning
Store multiple versions of your object and configure locks for long term retention and archiving of data. Meet the most stringent data compliance policies with the Legal Hold feature. Read more
Advanced Features
- 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
- Bucket Replication
These advanced features are accessible via the API, with ACL, CORS, and Metadata configurations also manageable through the Portal:
- Identity and Access Management (IAM)
Control programmatic access by creating specific IAM API Keys. These keys can be restricted to a single bucket, ensuring precise access management. - Access Control Lists (ACLs)
Define precise permissions for buckets and individual objects with ACLs, allowing for granular access policies. Manage access rights such as read, write, and full control without inheritance from parent entities. For detailed information, refer to the SOS ACL Documentation. - Cross-Origin Resource Sharing (CORS)
Enable browser-based applications to interact seamlessly with objects in a bucket via CORS, implemented at the bucket level for uniform configuration. More details are available in the SOS CORS Documentation. - Metadata
Tag each object in a bucket with key-value pairs, presented through HTTP headers in SOS requests and responses. Comprehensive information and examples can be found in the SOS Metadata Documentation. - Encryption
Leverage both client-side encryption and Server-Side Encryption with Customer Keys (SSE-C) to secure data. For client-side encryption details, consult your library documentation, while SSE-C specifics can be explored in the SSE-C Documentation.
Limits
The following table shows which limits are applied to SOS compared to AWS.
Usage | Limit | AWS S3 equivalent |
---|---|---|
Maximum number of buckets | 20 * | 100 |
Maximum object size | 4TiB | 5TiB |
Maximum number of parts in a multipart upload | 10000 | 10000 |
Minimum part size | 5MiB ** | 5MiB ** |
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 *** | 64 char *** |
Maximum key name size | 1024 byte (UTF-8) | 1024 byte (UTF-8) |
Maximum number of objects per delete-objects operation | 1000 | 1000 |
*) service limit upgradeable
**) does not apply to last part
***) DNS compatible
Availability
Zone | Country | City | Availability |
---|---|---|---|
at-vie-1 | Austria | Vienna | |
at-vie-2 | Austria | Vienna | |
ch-gva-2 | Switzerland | Geneva | |
ch-dk-2 | Switzerland | Zurich | |
de-fra-1 | Germany | Frankfurt | |
de-muc-1 | Germany | Munich | |
bg-sof-1 | Bulgaria | Sofia |
Limitations
Unsupported S3 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:
- Encryption should be performed client-side
- Object Tagging
- Object Lifecycle Management
- Bucket Access Logging
- Bucket Event Notification
- Static Website Hosting