Vultr Object Storage

Published on: Mon, Aug 12, 2019 at 10:15 am EST
FAQ

This feature is still in the beta-testing period. Specifications and availability are subject to change.

S3-compatible* object storage is now available on the Vultr cloud. Our object storage technology is affordable, scalable, and easy to integrate into your existing solutions. This article provides an overview on object storage and instructions for getting started with it.

What is object storage?

Object storage is a web-accessible service for storing and retrieving files. Files are referred to as "objects". Objects uploaded to object storage can be accessed privately or publicly on the web. Object storage supports a virtually unlimited number of objects.

Use cases for object storage include:

  • Host static website assets ( images, javascript, css, media files ).
  • Share software or business files.
  • Backup and restore solutions.
  • Store large quantities of objects.
  • Eliminate the need to manage and grow file storage.

How can I order object storage?

Within the Vultr customer portal, an "Objects" menu item is shown at the top of the page. This takes you to the object storage subscription listing.

On the subscription listing page, you will be presented with links to order object storage and manage your existing object storage subscriptions.

How can I use object storage?

Once you have ordered an object storage subscription, the subscription will show in the subscription listing. Clicking on the subscription will navigate to the subscription detail page that provides you with the necessary hostname and access keys.

Vultr's object storage is S3-compatible*. This means that it is compatible with most tools designed for Amazon S3.

Key concepts

Object storage is purchased on Vultr through subscriptions. A single subscription grants you a fixed amount of storage in a given location. Each subscription is isolated and has its own set of S3 access keys. If you wanted to store objects in both New Jersey and Los Angeles, you would need to purchase two subscriptions.

Each subscription provides a pair of S3 access keys. These are the keys that are used with your S3-compatible software.

There is a variety of S3-compatible software. The software you can use depends on your personal preference and your computer's operating system. Both CLI-based tools and graphical tools are generally available. We include several examples later in this document.

Objects are stored in buckets. Before you can begin uploading objects, you need to create at least one bucket. Buckets are similar to folders on a file system. Bucket names are unique in any given location. For example, I could not create two buckets named mybucket in New Jersey. See "Rules on bucket naming" for more information.

Buckets are web-accessible by name. For example, if I created a bucket named mybucket in New Jersey, the bucket would be available at https://mybucket.ewr1.vultrobjects.com/ and also https://ewr1.vultrobjects.com/mybucket/. The ewr1.vultrobjects.com hostname portion varies by region and can be referenced in the object storage subscription listing.

Objects are uploaded to buckets. In most S3 tools, objects are "private" by default. This means that you would need the S3 access keys in order to download the object. Files can also be made "public", making them accessible on the web. Uploading photo.jpg to mybucket, then setting the permission to "public" would make the file accessible at https://mybucket.ewr1.vultrobjects.com/photo.jpg.

s3cmd: Example CLI tool

S3cmd is a command line S3 client for Linux and Mac. Our tested version was 2.0.2.

First, you'll need to configure s3cmd.

s3cmd --configure

The wizard will ask you several questions. Use the values provided with your object storage subscription for the questions below. Replace access123, secret123, and ewr1.vultrobjects.com accordingly.

Access key: access123
Secret key: secret123
...
S3 Endpoint: ewr1.vultrobjects.com
DNS style bucket+hostname:port: %(bucket)s.ewr1.vultrobjects.com
...

After completing the wizard, you can use s3cmd to access your object storage.

# make bucket
s3cmd mb s3://mybucket

# remove bucket
s3cmd rb s3://mybucket

# list buckets
s3cmd ls

# list files in bucket
s3cmd ls s3://mybucket

# upload file, private access
s3cmd put photo.jpg s3://mybucket/photo.jpg

# upload file, public access
s3cmd put -P photo.jpg s3://mybucket/photo.jpg

# download file
s3cmd get s3://mybucket/photo.jpg

# delete file
s3cmd rm s3://mybucket/photo.jpg

# change access on file to public
s3cmd setacl s3://mybucket/photo.jpg --acl-public

# change access on file to private
s3cmd setacl s3://mybucket/photo.jpg --acl-private

# enable directory listing on a bucket
s3cmd setacl s3://mybucket/ --acl-public

# disable directory listing on a bucket
s3cmd setacl s3://mybucket/ --acl-private

For more examples, see the s3cmd manpage.

Cyberduck: Example graphical tool

Cyberduck is a graphical file manager for Windows and Mac. It supports S3, FTP, and many popular file sharing services. Our tested version was 6.8.2.

Connect to Vultr object storage by clicking "Open Connection".

The "Open Connection" dialog will appear. You need to specify "Server", "Access Key ID", and "Password". Use the values provided with your object storage subscription.

  • "Server" is the S3 hostname ( ewr1.vultrobjects.com ).
  • "Access Key ID" is the S3 access key.
  • "Password" is the S3 secret key.

Click the "Connect" button to connect. Afterwards, you can manage files with Cyberduck.

# create bucket
Choose "File, New Folder" from the menu, or right click in the file area and choose "New Folder". The folder name is the bucket name.

# remove bucket
Right click on a bucket, click "Delete".

# upload file
Drag and drop a file from your computer onto the bucket.

# download file
Right click on a file, click "Download As...".

# delete file
Right click on a file, click "Delete".

# change access on file to public
Right click on a file, click "Info". Go to the "Permissions" tab. Click the gear on the lower left corner, and choose "Everyone" from the menu. Set the "Permission" dropdown to "READ" for the "Everyone" ACL table entry. Close the "Info" window.

# change access on file to private
Right click on a file, click "Info". Go to the "Permissions" tab. If "Everyone" appears in the "Access Control List (ACL)", click the gear on the lower left corner and remove the entry. Close the "Info" window.

# enable directory listing on a bucket
Right click on a bucket, click "Info". Go to the "Permissions" tab. Click the gear on the lower left corner, and choose "Everyone" from the menu. Set the "Permission" dropdown to "READ" for the "Everyone" ACL table entry. Close the "Info" window.

# disable directory listing on a bucket
Right click on a bucket, click "Info". Go to the "Permissions" tab. If "Everyone" appears in the "Access Control List (ACL)", click the gear on the lower left corner and remove the entry. Close the "Info" window.

Technical information

Rules on bucket naming

  • Bucket names must be unique per location.
  • Bucket names must begin and end with a lowercase letter.
  • Bucket names may contain a dash (-).
  • Bucket names max length is 255 characters.
  • Bucket names longer than 63 characters cannot be accessed when using a virtual bucket host name, for example: "mylongbucketname.ewr1.vultrobjects.com". For longer bucket names, the top-level directory method must be used, such as "ewr1.vultrobjects.com/mylongbucketname".

S3-compatibility

The table below lists compatibility between Vultr object storage and the S3 protocol. Compatibility may be further limited depending on the S3 tool used to access Vultr object storage.

For download requests, the "Content-Length" header may not match the size of the file. This is because we use gzip on our webservers to improve performance. In the rare event that this is causing issues for your automation system, you can disable gzip on requests. The libcloud project is being updated to support this behavior.

Bucket ACLs (Get, Put) Yes
Bucket Access Logging No
Bucket Inventory No
Bucket Lifecycle Yes
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

Want to contribute ?

You could earn up to $300 by adding new articles