With the release of SoftLayer Object Storage, we wanted to integrate brand-unique, value-added features on top of the already comprehensive tools that have been put in place to provide a first-in-class product for our customers. While Object Storage has many features that come standard from the OpenStack Object Storage project (code-named Swift), the additional features we have integrated will bring your storage to the next level.
Before introducing you to the features, we’d like to better acquaint you with the architecture you can expect to see when working with SoftLayer Object Storage.
SoftLayer Object Storage has API endpoints on both the private network and public internet. Private network calls can only be made from servers and computing instances purchased from SoftLayer, or devices connected to the private network via VPN. Authentication requests should be sent to the endpoint associated with the location of your Object Storage account.
The response body of the authentication request will contain endpoint information for clusters associated with your account.
Public Network: https://dal05.objectstorage.softlayer.net/auth/v1.0
Private Network: https://dal05.objectstorage.service.networklayer.com/auth/v1.0
San Jose, California, US:
Public Network: https://sjc01.objectstorage.softlayer.net/auth/v1.0
Private Network: https://sjc01.objectstorage.service.networklayer.com/auth/v1.0
Toronto, Ontario, CA:
Public Network: https://tor01.objectstorage.softlayer.net/auth/v1.0
Private Network: https://tor01.objectstorage.service.networklayer.com/auth/v1.0
Public Network: https://ams01.objectstorage.softlayer.net/auth/v1.0
Private Network: https://ams01.objectstorage.service.networklayer.com/auth/v1.0
Public Network: https://lon02.objectstorage.softlayer.net/auth/v1.0
Private Network: https://lon02.objectstorage.service.networklayer.com/auth/v1.0
Public Network: https://sng01.objectstorage.softlayer.net/auth/v1.0
Private Network: https://sng01.objectstorage.service.networklayer.com/auth/v1.0
Hong Kong, HK:
Public Network: https://hkg02.objectstorage.softlayer.net/auth/v1.0
Private Network: https://hkg02.objectstorage.service.networklayer.com/auth/v1.0
Key Architecture Points
Unlike the regular SoftLayer API, the Object Storage API is solely written for RESTbased programming so users will be working completely out of a browser, utilizing URLs and request headers rather than the standard methods that one might usually see. This allows us to utilize the tools and bindings that already exist to ensure you get the best version of Object Storage possible. When navigating through the Object Storage API, you’ll be working with four basic storage concepts which are easily navigable and allow you to fully customize the way you store your data.
A cluster is a set of servers that create scalable and fault-tolerant object storage. When using SoftLayer Object Storage, your data is replicated across the cluster, ensuring that it can be retrieved in the event of node failure. Object storage clusters are located in each of the SoftLayer datacenters listed above.
The account for Object Storage is treated like any SoftLayer account. It is the main point of reference to which all of your data is associated. When completing request headers, your account will generally be referenced to retrieve, add or change information. From your account, clusters are created in different datacenters, which house objects as they are uploaded to the cluster. Within each cluster, containers may be created to better organize objects, similar to filesystems used by most software today.
The container is the basic storage unit for all data that you store. Containers work in Object Storage much like folders or directories work in many operating systems. The main difference between containers and folders or directories is that containers are unable to be nested. At minimum, an account must contain one container and the number of containers allowed per account is unlimited. Optionally, additional containers can be created within your account and data may be organized within those containers based on your business needs.
An object represents the data and any metadata for the files stored in the system. Through the REST interface, metadata for an object can be included by adding custom HTTP headers to the request and the data payload as the request body. Objects cannot exceed 5GB and must have names that do not exceed 1024 bytes after URL encoding. However, objects larger than 5GB can be segmented and then concatenated together so that you can upload 5 GB segments and download a single concatenated object. You can work with the segments and manifests directly with HTTP requests.
OpenStack Object Storage Developer Guide
Key Object Storage Feature
Now that you are familiar with the basics of SoftLayer Object Storage, we’d like to briefly introduce you to two of the key features that come standard with every Object Storage account. For more information on either of these features, click the link embedded in the descriptions and you will be routed to an in-depth article on the selected feature.
With CDN integration available for all Object Storage clients, you now have the option to replicate your data to all Points of Presence (PoPs) on the SoftLayer network. This means getting information stored closer to your clients worldwide and allowing your data to be retrieved from the server that will get clients' information the quickest.
Search Service API
Exclusive to SoftLayer Object Storage is the Search Service API. This API, built directly on top of the Object Storage API, allows you to customize you search not only to search by account, container or object, but also to input a variety of parameters in your request to ensure the best return possible. These parameters include, but are not limited to:
- Format – Specify the format in which your results are returned. Current formatting options are json, XML and plain text.
- Recursive – Require the system to search recursively, if desired.
- Sort – Indicate how you would like your response sorted. While the system defaults to sort based on the best match, users have the option to override and receive the results based on the desired property.
In addition to using the REST API we provide language bindings for a number of languages.