The NetStorage Configuration API

NetStorage is a managed service that provides persistent, replicated storage of web site content, including images, streaming media files, software, documents, and other digital objects. Content is replicated periodically to core network locations to make it highly available to, and easily accessible by, EdgePlatform servers. This makes NetStorage a great complement to multiple content delivery services.

You use NetStorage to upload and maintain content in provisioned spaces called “storage groups”, which are accessed via “upload accounts”–both of which you configure. This API is specifically used to interact with both of these entities.

Who Should Use This API

This is intended for NetStorage customers who would prefer working directly with an API to develop a custom application to interact with their NetStorage 4 (ObjectStore) format storage groups and associated upload accounts. Only those individuals that are experienced with the use of an API should attempt to use these components. All others should use the NetStorage Groups user interface that is available via the Luna Control Center (Configure > NetStorage > Configuration).

What Functionality is Offered with the API?

This API offers a limited set of operations that can be implemented to interact with your ObjectStore storage groups and upload accounts:

  • View all of your ObjectStore storage groups
  • View a specific ObjectStore storage group
  • View all of your upload accounts
  • View a specific upload account
  • Add a new upload account
  • View a list of geographic zones available to you for use in replication of your content (“replicas”)

We plan to add more functionality with future releases. For full functionality access, use the interface in the Luna Control Center.

NetStorage 3 (FileStore) Storage Groups are Not Supported

This API has been developed to support ObjectStore format storage groups. To work with your FileStore format groups, use the Luna Control Center.

The NetStorage HTTP API

This is a separate API available for use outside of the {OPEN} environment. It is used to interact with your content in NetStorage, and offers operations you can use to upload, download, view and manage the content within your storage groups. Integration of this API into {OPEN} is planned for a future release. Documentation on its use is available via the Luna Control Center.

Getting Started

The following points address specific prerequisite requirements for this API, as well as requirements for all {OPEN} APIs.

  • Contact your Account Representative to get NetStorage added to your contract.

  • The NetStorage network has a Propagation Time Requirement. Any action that that adds (POST), updates (PUT) or removes (DELETE) an ObjectStore-related component takes upwards of 60 minutes to propagate. For example, creating a new upload account (POST) via the API requires propagation, which can take 60 minutes before the account is accessible for use.

  • Review Get Started on tools that Akamai provides for all its APIs.

  • Review Authorize Your Client to create your API access credentials and authorizations. As detailed in the API Identity Model section, you then access the API using custom hostnames that looks like this: https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net.

  • If you need help, provide feedback with the {OPEN} developer community, or contact your Akamai representative for support.

Hypermedia

The API uses links to standard hypermedia objects to help clients locate related resources relevant within a set of JSON data. For example, the JSON below shows the sort of response you might get when you GET a specific storage group. Its links array is comprised of multiple objects, one for each applicable resource. Each rel represents the link relation. This can be self for links referring to the storage group, itself, uploadAccounts for an upload account, and zones for a geographic replication zone associated with the group. The associated href provides a navigable path to the resource, once you prefix it with your hostname token.

"links": [
    {
        "rel": "self",
        "href": "http://my.url.com/storage-services/api/v1/storage-groups/1234568"
    },
    {
        "rel": "uploadAccounts",
        "href": "http://my.url.com/storage-services/api/v1/upload-accounts?storageGroupId=1234568"
    },
    {
        "rel": "zones",
        "href": "http://my.url.com/storage-services/api/v1/zones"
    }
]

Last modified: 3/12/2018