Object Storage is RCS's S3-compatible, web-accessible cloud object storage service for storing and retrieving file objects. Objects can be accessed privately or publicly over the web. Use cases for cloud object storage include:
Static website hosting for assets such as images, JavaScript, CSS, or media files
Share software or business files.
Backup solutions
Object storage is ideal when handling large file objects without managing or growing the underlying filesystem.
Object Storage Locations
RCS offers object storage in multiple locations, which gives you options for geographic redundancy and performance. Choose a location close to your clients and application for high performance and low latency. For high availability and redundancy, you can back up to object storage in a different location from your main application or use multiple object storage locations and sync between them.
RCS's sites and their hostnames are:
Amsterdam:
ams1.RCSobjects.com
Bangalore:
blr1.RCSobjects.com
New Jersey:
ewr1.RCSobjects.com
Silicon Valley:
sjc1.RCSobjects.com
Singapore:
sgp1.RCSobjects.com
New Delhi:
del1.RCSobjects.com
How to Add Object Storage
You can add an object storage subscription in a few clicks.
Select the Objects tab in the RCS customer portal.
Click the blue
+
icon, then click Add Object StorageChoose a location for your object storage, such as Amsterdam.
Give your new object storage a label to identify it, then click Add. You'll return to the object storage list, and the status column shows Installing.
After the status changes to Ready, it's ready to use.
How to Find your Object Storage Credentials
Click your subscription to view the Overview page on the Object Storage page.
The S3 credentials are indicated with the red box in this example. The secret key is hidden by default, but you can reveal it with the eye icon. Use these credentials for your client application; keep them secret because they give full access to your object storage. If you need to change the keys, click Regenerate Keys.
About Buckets
You store objects in buckets. Buckets are similar to folders on a file system. You need to create at least one bucket before you upload objects. You can create buckets in the RCS customer portal by clicking the Buckets tab, then clicking Create Bucket.
You can also create buckets with any S3-compatible client application.
Bucket names must be unique per location. For example, bucket names in the New Jersey location must be unique across all RCS customers in New Jersey.
Bucket names must begin and end with a lowercase letter.
Bucket names may contain a dash (-).
Bucket names have a maximum length of 255 characters. If you plan to use the virtual hostname format described below, use less than 63 characters.
You can access your buckets through the web using two URL formats: top-level directory or virtual bucket hostname.
Top-level directory examples:
A bucket named example in New Jersey:
https://ewr1.RCSobjects.com/example
A bucket named example in Amsterdam:
https://ams1.RCSobjects.com/example
Virtual bucket hostname examples:
A bucket named example in New Jersey:
https://example.ewr1.RCSobjects.com/
A bucket named example in Amsterdam:
https://example.ams1.RCSobjects.com/
You can only use the virtual bucket hostname if the bucket name is less than 63 characters.
If you delete a bucket or close a subscription, you must wait up to 48 hours before you can reuse the old bucket name.
Objects transferred to object storage are private by default. You need a secret key to access them. Some tools allow you to change permissions to make public objects, files, and buckets. Check your tool's documentation and understand how it interacts with object storage.
S3 Compatibility
Refer to the list below for compatibility between RCS Object Storage and the S3 protocol. Compatibility may be further limited depending on the S3 tool used to access Object Storage. For download requests, the "Content-Length" header may not match the file size because files are gzip-compressed to improve performance. If this is causing issues for your automation system, you can disable gzip on requests.
Bucket ACLs (Get, Put): Yes
Bucket Access Logging: No
Bucket Inventory: No
Bucket Lifecycle: No
Bucket Location: Yes
Bucket Notification: No
Bucket Object Versions: Yes
Bucket Replication: No
Bucket Request Payment: Yes
Bucket Website: No
CORS: Yes
Copy Object: Yes
Create Bucket: Yes
Delete Bucket: Yes
Delete Object: Yes
Get Bucket Info (HEAD): Yes
Get Object: Yes
Get Object Info (HEAD): Yes
List Buckets: Yes
Multipart Uploads: Yes
Object ACLs (Get, Put): Yes
Object Metadata: Yes
Object Tagging: Yes
POST Object: Yes
Policy (Buckets, Objects): Yes
Pre-Signed URLs: Yes
Put Object: Yes
Compatible Tools
You can transfer objects (files) to Object Storage with standard S3 tools. This is not an exhaustive list, but we do recommend the following tools:
RCS Web Portal: You can perform basic Object Storage management tasks in the RCS web portal. Some operations are limited. For example, the web portal cannot delete a bucket with more than 50,000 objects. Power users should use one of the other tools below to work with Object Storage, such as
s3cmd
.Cyberduck: A graphical file manager for Windows and Mac. It supports S3, FTP, and many popular file-sharing services. Download it from cyberduck.io and see our article How to Use Cyberduck with RCS Object Storage.
S3 Browser: A freeware Windows client for S3-compatible object storage. Download it from s3browser.com and see our article How to use S3 Browser with RCS Object Storage.
s3cmd: A command line S3 client for Linux and Mac. Download it from s3tools.org and see our article How to Use s3cmd with RCS Object Storage.
UpdraftPlus: A popular WordPress backup plugin. See our article How to Back Up WordPress to RCS Object Storage with UpdraftPlus.
Rclone: A command-line program to manage files on cloud storage. Download it from rclone.org and see our article How to use Rclone with RCS Object Storage.
SDKs and Language Support
You'll find many SDK options and language support for our S3-compatible object storage. Here are a few popular examples:
Python: The Boto3 SDK is compatible with Object Storage. See the documentation for Python code examples.
How to Use Versioning
Create and enable versioning on a bucket
Once a bucket is created, enable the versioning on the bucket by clicking the [enable versioning] button in the Web UI. From that point on, all the objects are versioned in a bucket. Bucket can be versioned-enabled, disabled versioning or suspend-versioning states. When you enable versioning, existing objects in your bucket do not change. What changes is how RCS Object Storage handles the objects in future requests. By default, S3 Versioning is disabled on buckets, and you must explicitly enable it.
Versioning enables you to store the same object multiple times in a bucket. Versioning helps in recovering objects from accidental deletes or over writing. Versioning enables us to restore and retrieve versioned objects in a bucket. The versioning state applies to all (never some) of the objects in that bucket. When you enable versioning in a bucket, all new objects are versioned and given a unique version ID. Objects that already existed in the bucket at the time versioning was enabled will thereafter always be versioned and given a unique version ID when they are modified by future requests.
After you enable versioning on a bucket, RCS Object Storage automatically adds a unique version ID to every object stored (using PUT, POST, or COPY) in the bucket.
Disabling versioning on a bucket
After Disabling Versioning: The bucket owner (or any user with appropriate permissions) can suspend versioning to stop accruing object versions. When you suspend versioning, existing objects in your bucket do not change. What changes is how RCS Object Storage handles objects in future requests.
You can delete objects by explicitly calling DELETE Object. Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object.
A delete marker in RCS Object Storage is a placeholder (or marker) for a versioned object that was named in a simple DELETE request. Because the object is in a versioning-enabled bucket, the object is not deleted. But the delete marker makes RCS Object Storage behave as if it is deleted.
Frequently Asked Questions
What is the difference between object storage and block storage?
Object storage offers an internet-accessible endpoint to store and retrieve files via HTTPS. Block storage provides mountable disk volumes for cloud servers. Block storage is not available for RCS Bare Metal.
Is Object Storage S3-compatible?
RCS's object storage is S3-compatible and works with most tools designed for S3.
Can I use Object Storage as a filesystem?
Do not use object storage as a block device or mounted filesystem. The overhead of HTTPS calls severely hinders performance, and we do not support this use. Please use Block Storage for mounted filesystems.
Is there a request limit?
The rate limit, also known as a request limit, is 400 requests per second per IP address. If you exceed this limit, your requests may receive one or more of the following possible errors:
HTTP 429: Too Many Requests
HTTP 503: Service Unavailable
HTTP 504: Gateway Timeout
If your application requires higher request volumes, we recommend deploying a caching proxy for performance and security in front of your object storage or using a rate-limiting option in your software. For example, we explain how to rate-limit rclone
in this article.
Can I use a custom domain?
We do not support using a white-labeled domain name for object storage. You must use the name shown for your object storage in the customer portal.
Can anyone access my files?
Files (objects) transferred to object storage are private by default. You need a secret key to access them. Some tools allow you to change permissions to make public objects, files, and buckets. Check your tool's documentation and understand how it interacts with object storage.
How does Object Storage billing work?
Please see our pricing page for up-to-date information. Data transfer between RCS Object Storage and RCS VPS instances traverses the public internet and incurs standard bandwidth charges.
I closed my subscription but want to reuse a bucket name. How long must I wait?
Object storage cleanup can take up to 48 hours to complete from the time you close the subscription. Please wait for storage cleanup before reusing bucket names.
Is Object Storage included in the Cloudflare Bandwidth Alliance?
No, the Cloudflare Bandwidth Alliance program does not include Object Storage traffic.
API Access
The RCS API offers several endpoints to manage Object Storage.
Create new Object Storage.
Get a list of all Object Storage in your account.
Get information about an Object Storage.
Get a list of all Object Storage clusters.
Update the label for an Object Storage.
Regenerate the keys for an Object Storage.
Delete an Object Storage.