Patent ID: 9635132
Date: 2017-04-25
CPC Classifications: G06F,H04L

Claim:
1. A method, comprising: exposing, by a block storage service implemented on one or more devices within a provider network, block storage service application programming interfaces (APIs) to client applications external to the provider network, wherein the provider network provides volume-based block storage as a remote data store to client applications external to the provider network, wherein the block storage service APIs provide a standard application programming interface for volume-based block storage operations of the block storage service on the remote data store, and wherein the block storage service APIs that are exposed to client applications external to the provider network include a create volume API, an upload block API, a download block API, and a delete volume API; and performing, by the block storage service: receiving, from an application implemented on one or more devices on a client network, a create volume request according to the create volume API, wherein the create volume request received at the block storage service corresponds with a request generated by the application according to the create volume API; creating, on the remote data store, a volume according to one or more parameters of the create volume request; returning, to the application, a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receiving, from the application, one or more upload block requests according to the upload block API, wherein the one or more upload block requests received at the block storage service correspond with the one or more upload block requests generated by the application according to the upload block API, and wherein each upload block request specifies the volume ID and data to be uploaded to the volume; and for each of the one or more upload block requests, writing the respective data to the remote data store as volume data for the volume according to one or more parameters of the upload block request; receiving, from the application, one or more download block requests according to the download block API, wherein the one or more download block requests received at the block storage service correspond with the one or more download block requests generated by the application according to the download block API, and wherein each download block request specifies data to be downloaded from the volume; for each of the one or more download block requests, reading the respective volume data from the remote data store according to one or more parameters of the download block request and returning, to the application, a download block response that includes the respective volume data according to the download block API; receiving, from the application, a delete volume request that specifies a volume on the remote data store to be deleted according to the delete volume API; and in response to the delete volume request, deleting the volume indicated by the delete volume request from the remote data store.