What is a cloud storage API?
A cloud storage API is an application programming interface that connects a locally based application to a cloud-based storage system so that a user can send data to it and access and work with data stored in it. To the application, the cloud storage system is just another target device, like disk-based storage.
A cloud API is specific to the storage service it targets. For example, a cloud object storage service might offer an API that can create, fetch and delete objects on that platform, as well as perform other object-related tasks. An API for a file storage service operates at the file and folder level, supporting operations such as uploading and downloading files and sharing folders with multiple users.
Even if providers offer the same type of storage, such as Amazon Simple Storage Service (S3) and Microsoft Azure blob, each service still requires an API specific to that service. For example, developers can't use the Amazon S3 representational state transfer (REST) API to access an object in Azure Blob.
Challenges of cloud storage APIs
These APIs provide a range of capabilities that developers can implement in their applications, but each is specific to a cloud storage service. This adds complexity to the development process when multiple cloud services are involved. Even if those services are with the same provider, individual APIs are often still required. The process becomes even more complex when storage services and their APIs are updated or changed in any way.
The lack of a common cloud API can make it difficult to move data from one provider's service to another's. Organizations that want to deploy multi-cloud strategies can have an especially difficult time managing resources across the cloud platforms.
Over a decade ago, marketing research analyst Bill Claybrook explained the problem:
Many IT pros view the lack of cloud computing standards as a potential roadblock to adoption, stemming from cloud provider lock-in fears and the inability to move virtual machines and data from cloud to cloud…
What users want is a cloud API like the network API, TCP/IP -- one that's implemented in all cloud products and services and promotes transparent interoperability. This would increase the confidence of prospective public cloud adopters, as they'd be able to leave their providers whenever they want. It would also eliminate the belief that it's easy to get into the cloud but difficult to get out.
Although the industry has changed significantly since Claybrook made his pronouncement, much of what he said still holds true today. Most cloud storage vendors have published APIs for building applications that can access their storage services. However, the APIs continue to be specific to the individual services and cannot be used to connect directly to other services.
Examples of cloud storage APIs
Developing a common cloud API would be a difficult, lengthy process. It is complicated by the fact that cloud storage providers have little incentive to make this happen. Many of today's APIs support industry standards, such as the REST architectural style and the Open Authorization, or OAuth, 2.0 authentication and authorization protocol. However, the APIs remain limited to their own target services.
Examples of cloud storage APIs include the following:
- Amazon S3 REST API. This one is a Hypertext Transfer Protocol (HTTP) interface to Amazon S3 that is programming language-neutral. The API lets developers build applications that include HTTP requests and use standard HTTP headers and status codes. In this way, developers can work with any toolkit that supports HTTP. However, Amazon added functionality to HTTP in some areas, so developers should be aware of these changes when working with the API.
- Dropbox API. With this API, developers get a set of HTTP endpoints to help integrate their applications with the Dropbox The API can access both user and business endpoints, accommodating direct work with stored files. Developers can use the API for advanced functionality, such as sharing, thumbnails and full-text search. They can also manage the user lifecycle for a business account, perform actions on multiple team members and access Dropbox Business administration functionality.
- Google Drive API. This API lets developers create applications that integrate with Google Drive. It supports file upload and download, search for files and folders, and file and folder sharing. Developers can also create third-party shortcuts that are external links to data in a different data store or cloud storage system.
- Microsoft OneDrive REST API. Developers can use this API to access OneDrive, OneDrive for Business, SharePoint document libraries and Office Groups. The API makes it possible to read and store content in any of these locations without having to modify the code.
- Microsoft Azure Storage REST APIs. These offer programmatic access to various Azure services. The APIs vary depending on which service is being accessed. For example, developers can use the Blob service API to retrieve service stats, set container metadata and create a hierarchical namespace similar to a file system. They can use the Table service API to set service properties, create tables and configure a table's access control list.
Learn more about the types of cloud storage APIs that are available to expose cloud storage to applications.