Object Storage

About object storage

Object storage is a service designed and built for storing data in the cloud. Among its characteristics, we can highlight the following:

  • Scalable: You can store bytes or terabytes of data, without building and maintaining any infrastructure components. You only pay for what you use.
  • Cloud native: Designed for web-based applications, natively distributed and redundant, and can serve content directly to the user's browser via HTTP or HTTPS, without a need to deploy and manage a web server.
  • Reliable: Provides high availability for the data and API, isolated backend infrastructure failures do not lead to data loss or service downtime.
  • Amazon S3 compatible: Applications designed to work with Amazon S3 API in many cases can work with the object storage service without modifications.

Managing object storage via portal

You don't need to create any objects in the portal if you intend to use the object storage via API or third-party applications. However, portal also provides web interface for data upload, download and sharing. For example, you can upload files via web UI and later share URLs to those files with a colleague.

To do that, go in the left-hand navigation and click on "Object storage". Then click the "Create container" button.

You can specify container name, and select the container type:

  • Private Container allow you to store data on the cloud and access it via the portal. However, such container will have access control list (ACL) preventing direct download from the Internet, so you will not be able to share objects in this container with someone else.
  • Public Containers allow you to retrieve and share a URL to grant access to your objects in the container.

To manage data in your containers, press the action menu and select on "Open". From there, you will be able to upload and download files, create and delete folders.

Using object storage with third-party software

Even for simple file management, upload and download via browser is not always the most convenient option. If you prefer a different application to manage data in your object storage, there are many options available. Let's consider just one example.

Connecting Cyberduck application to your object storage

Cyberduck is a popular GUI client to manage data over object storage and other protocols. Here is how you can connect it to your object storage:

  • Install Cyberduck on your computer for your operating system.
  • Add connection profile for the cloud. From the profile section below, copy the content, and store it in a text file on your computer. The name of the file must be “Swift (HTTPS).cyberduckprofile” (note that file extension .cyberduckprofile is critical for Cyberduck to recognize it).
  • Create new connection: Open Cyberduck and click “Open Connection” button. From the dropdown menu, select “Object Storage”. Make sure server name and port number is correct for you cloud - you can find this information in the "API Docs" section of the portal, "Identity API" section. Port number is typically 5000.
  • Now, enter the following parameters:
    • Project:Domain:Username field: enter {project_name}-project:{email}-domain:{email}.
    • For example, if your email is user@domain.com, and your project is user@domain.com- enter: user@domain.com-project:user@domain.com-domain:user@domain.com. If in doubt, you can retrieve the value for the "Project" field by running the following command line: openstack project list --my-projects (this will however require command line access to your project to be previously set up).
    • Password: your current password (same as you use for the portal)
  • Now you should be able to use Cyberduck to manage data in your object storage.

Connection profile (.cyberduckprofile)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
        <string>Team Cloud Object Storage</string>
        <key>Default Port</key>
        <key>Default Hostname</key>
        <key>Username Placeholder</key>
        <key>Password Placeholder</key>