NS HTTP Api FS
NS HTTP Api FS
Contents
PREFACE 5
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
USING THE API 7
Pre-Requisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Ensuring Port Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Provisioning Access to the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Understanding API Basics - Important . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Request Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Signature Header Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Authentication Header Break-down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
API Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
The delete Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
The dir Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
The download Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
The du Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
The mkdir Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The mtime Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The quick-delete Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
The rename Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
The rmdir Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
The stat Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
The symlink Action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
The upload Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
APPENDIX A. CROSS-ORIGIN RESOURCE
SHARING (CORS) SUPPORT 27
APPENDIX B. POTENTIAL HTTP ERROR CODES 29
APPENDIX C. AKAMAI CUSTOMER SUPPORT 31
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
iii
iv
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Preface
Welcome to the NetStorage HTTP API Specification. This API is a NetStorage
feature that provides an HTTP POST method you can use to manage your content.
Communication is conducted via the Edge network using a Web-based user interface
of your own design. With this feature, you can perform operations such as uploading,
deleting, and listing of content, thus providing you one more options for interfacing
with your NetStorage account. Also, since communication is Web-based, you can
apply security through the use of Secure Sockets Layer (SSL).
The following illustrates the flow of an upload request using this API:
CAUTION: With regard to the various operations available, be aware that only one operation
per request is supported.
Intended Audience
This documentation is intended for NetStorage customers who would prefer working directly with an API interface to perform various NetStorage-related operations
that are targeting FileStore-format Storage Groups. Only those individuals that are
experienced with the use of an API (and the generation of an applicable Web-based
user interface required by this component) should attempt its use.
Pref ace
The NetStorage Configuration API - This API offers calls used to interact
with your NetStorage Storage Groups and Upload Accounts. Complete details on
this API are discussed in the NetStorage Configuration REST-based API Specification
(links to which are maintained on page 6).
Additional Resources
While not required to use the components covered in this guide, the sections that follow discuss additional documentation and resources that can assist with its use.
Recommended Reading
NetStorage - Configuration Guide (for FileStore) - Covers the use of the
NetStorage:Configuration utility in the Luna Control Center, which is used to
manage your NetStorage Storage Groups and associated Upload Accounts.
https://control.akamai.com/dl/customers/NS/NS_Config_FS.pdf
NetStorage Configuration REST-based API Specification - Covers various
APIs that can be used to manage your NetStorage Storage Groups and associated
Upload Accounts.
https://control.akamai.com/dl/customers/NS/NS_Config_API_ug.pdf
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Pre-Requisit es 7
Request Handling 12
Signat ure Header Aut hent icat ion 14
API Act ions 17
Pre-Requisites
The sections that follow document various pre-requisites that must be met before
you can start using the Akamai NetStorage HTTP API (hereinafter, simply
referred to as the API).
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
1. Launch your desired browser and access the Luna Control Center:
https://control.akamai.com
2. Login using the User ID and Password that were configured for access to NetStorage.
3. Select the appropriate account -- one configured for NetStorage use -- from the
Select Account drop-down.
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Pre-Requisit es
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Most languages/tools will offer automatic support for the inclusion of this value.
However, you must ensure that this component is included in the API call.
Defining the HOST in a Call
Each API call requires that you define the HOST:
Host: [example]-nsu.akamaihd.net
This full value is your unique Connection Hostname. For details on obtaining
this value, please see the section relevant to your Upload Accounts access type:
Enabling for a Secure (SSH) Upload Account on page 8, or
Enabling for a Non-Secure (FTP) Upload Account on page 9
10
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Pre-Requisit es
The header itself includes a version number and any other arguments the operation
requires. The version -- which at present is always 1 -- identifies the protocol,
which eliminates backward compatibility concerns. Any request with the action
HTTP header is treated as an API request and is authenticated with a shared key
authentication scheme. If this authentication fails, the request is denied with an
HTTP 403 error.
Action headers can contain required and optional fields. Each field must be prefaced with an ampersand (&) -- including the action itself -- and its content must
be input in standard query string encoding (URL encoding). For example, if the
upload action also included a field entitled target which requires the variable,
/files/new file-1.txt, it would be input as follows:
&action=upload&target=%2Ffiles%2Fnew%20file-1.txt
TIP: Query string encoding also supports the use of a plus sign ( + ) to designate a whitespace.
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
11
Request Handling
The following numbered steps detail the flow of a request and how it is handled for
an API call. Where Requirements are listed, these display activities that you must
perform in the call itself, or when configuring the applicable header (prior to the call).
1. The X-Akamai-ACS-Action header is located.
If the Header is Missing - Request is not an API request. It may, however,
still be a valid request that can be served.
If the Header is Present - The request is handled by the API (i.e., as either a
valid operation or an error).
2. The X-Akamai-ACS-Action header is parsed using standard query string parsing rules.
NOTE: Query string syntax already supports escaping arbitrary characters. Use care to escape at
least spaces (" "), equal signs ("="), plus signs ("+"), and ampersands ("&") in any values you
generate.
3. The version is verified (i.e., the header must contain a version action header
field, the value of which must be 1, otherwise the request will fail).
Requirements:
Any legacy headers are denied. Unexpected X-Akamai-* headers may
result in the request being denied to avoid potentially incorrect or ambiguous behavior from other APIs that may be, or may have been supported by
the recipient servers. Below is an example of the appropriate syntax:
PUT /[CPCode]/[path]/[file.ext] HTTP/1.1
Host: [example]-nsu.akamaihd.net
X-Akamai-ACS-Action: version=1&action=upload&md5=0123456789abcdef01234
56789abcdef&mtime=1260000000
[Signature headers (as described on page 14)]
[PUT body]
4. The request URL is checked for validity according to normal NetStorage rules.
Requirements:
This URL should begin with the same [CPCode] that you use with other
NetStorage protocols. The URL will name the file or directory that will be
queried or modified in this request.
5. The header field action is reviewed to determine the appropriate operation.
Requirements:
An Action Must be Defined - The following actions are supported for
use (i.e., only these actions are valid; anything else will return an error):
Read-only Actions
- dir - Return the directory structure (Usage details on page 17)
12
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Request Handling
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
13
The information required for each variable value is described in the following table:
Field
Descript ion
[version]
[0.0.0.0]
[time]
1)
[unique-id]
[Key-name]
[base-64-encodedsignature]
1) The time on a client using the API must be within one (1) minute of the actual
time. If the time varies more than this, then authentication will fail with an HTTP
403 error. It is suggested that any client using the API run ntp (Network Time
Protocol) to properly establish time.
14
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
The base-64-encoded-signature
Basic Make-Up
The base-64 encoded signature for the X-Akamai-ACS-Auth-Sign header is generated based on a specific algorithm (i.e., based on the [version] value specified in
the X-Akamai-ACS-Auth-Data header). At present, versions 3 through 5 are
supported by this API, though version 5 is preferred (version 4 is supported, but
not preferred, and version 3 is deprecated and should not be used). Please refer to
Knowledge Base below, to verify supported versions:
https://control.akamai.com/portal/kb/kbSearchDetails.jsf ?articleId=5782
Depending on the version in use, the basic structure of the base-64-encoded-signature algorithm is as follows:
Version 3 - HMAC-MD5([key], [data] + [sign-string])
Version 4 - HMAC-SHA1([key], [data] + [sign-string])
Version 5 - HMAC-SHA256([key], [data] + [sign-string])
In this algorithm, the following variable values are applied:
[key] - The internally-generated Key. For details on obtaining this value,
please see the section relevant to your Upload Accounts access type:
Enabling for a Secure (SSH) Upload Account on page 8, or
Enabling for a Non-Secure (FTP) Upload Account on page 9.
[data] - The full contents of the X-Akamai-ACS-Auth-Data header.
[sign-string] - The string to sign is equal to the example below (full details on
this value can be found in the next section -- The sign-string).
URL + \n + x-akamai-acs-action: + X-Akamai-ACS-Action value + \n
The sign-string
In the context of the API, the [sign-string] is formed by using:
1. The URL from the HTTP request line (the first line of the request) without the
surrounding method (e.g., PUT, GET), protocol, or space character delimiters.
2. A single line feed character (represented here with a newline -- \n -- character)
3. The string x-akamai-acs-action: followed by the value of the X-AkamaiACS-Action header (with any preceding and trailing whitespace removed)
4. A final line feed character (\n)
For example, with a request like this:
PUT /[path]/[file.ext] HTTP/1.1
Host: [example]-nsu.akamaihd.net
X-Akamai-ACS-Action: version=1&action=upload&md5=0123456789abcdef01234
56789abcdef&mtime=1260000000
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
15
The resulting sign-string would be as follows (i.e., where \n represents the line
feed character (ASCII code 10)):
/[path]/[file.ext]\nx-akamai-acs-action:version=1&action=upload
&md5=0123456789abcdef0123456789abcdef&mtime=1260000000\n
With the values set in the X-Akamai-ACS-Auth-Data Header, for the sake of example, assume that the [key] (shared secret) value is abcdefghij, and the URL
from the HTTP request for an upload action is /[path]/[file.ext]. In addition,
various optional upload action header fields are defined, and they too, must be
included. As a result, the HMAC-SHA256 would then be as follows:
HMAC-SHA256("abcdefghij",
"5, 0.0.0.0, 0.0.0.0, 1280000000, 382644692, key1" +
"/[path]/[file.ext]\n" +
"x-akamai-acs-action:version=1&action=upload" +
"&md5=0123456789abcdef0123456789abcdef" +
"&mtime=1260000000\n")
NOTE: In this particular example, there are exactly two newline and five space characters in the
string that is signed using HMAC-SHA256
Finally, the resulting X-Akamai-ACS-Auth-Sign header would look as follows:
X-Akamai-ACS-Auth-Sign: Ix98xZYkwygidinpmtKVk9+xPNn5QjozWDMROLjVWSo=
Both Headers in an
Example Request
With both headers established, an example call incorporating them might look as follows (i.e., using an action of upload in this example -- along with its associated,
optional action header fields):
PUT /dir1/dir2/file.html HTTP/1.1
Host: example-nsu.akamaihd.net
X-Akamai-ACS-Action: version=1&action=upload&md5=0123456789abcdef0123
456789abcdef&mtime=1260000000
X-Akamai-ACS-Auth-Data: 5, 0.0.0.0, 0.0.0.0, 1280000000, 382644692, key1
X-Akamai-ACS-Auth-Sign: vuCWPzdEW5OUlH1rLfHokWAZAWSdaGTM8yX3bgIDWtA=
[Other PUT headers, if applicable]
[PUT body]
When the NetStorage FileStore server receives a request, it can use the information
in the request to check the following:
Both of the above specified headers exist.
16
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
API Actions
All operations will be applied to the file or directory name specified in the request
URL. Actions are listed in this section in alphabetic order.
NOTE: If multiple paths are needed for an operation, the additional pathnames need to be specified via the X-Akamai-ACS-Action header.
Method Variables
Along with the PUT/POST method, specify the complete [path] to, and specify
the target file/symbolic link to be deleted as the [file.ext] variable.
NOTE: If the specified object does not exist, an HTTP 404 Not Found error may be returned.
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
17
Method Variables
Along with the GET method, specify the appropriate [CPCode] (root) and the
complete [path] to the target directory.
NOTE: This action must be used to target a directory. If a file is included in the [path], an
error will be revealed (i.e., an HTTP 412 will be displayed). The stat action is used to display
file information (see page 22).
Response Example
<stat directory="/dir1/dir2"]
<file type="file" name="file.html" mtime="1260000000" size="1234567"
md5="0123456789abcdef0123456789abcdef" />
<file type="symlink" name="symlink.html" mtime="1260000000"
target="file.html" />
<file type="dir" name="dir3" mtime="1260000000" />
</stat>
NOTE: The result of this request is returned as a standard XML document, but will contain one
[file] tag per entry in the directory.
Method Variables
Along with the GET method, specify the appropriate [CPCode] (root) and any
applicable sub-directories as the [path]. End with the target [file.ext].
NOTE: If the specified object does not exist, an HTTP 404 Not Found is returned.
The du Action
Include this action to return disk usage information for the directory specified by the
URL, including all files stored in any sub-directories that may exist.
Request Example
GET /[CPCode]/[path] HTTP/1.1
Host: [example]-nsu.akamaihd.net
X-Akamai-ACS-Action: version=1&action=du&format=xml
[Signature headers]
18
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Method Variables
Along with the GET method, specify the appropriate [CPCode] (root) and the
complete [path] to the target directory
Response Example
The result of this request is returned as XML in the following format:
<du directory="/dir1/dir2">
<du-info files="12399999" bytes="383838383838">
</du>
Method Variables
Along with the PUT/POST method, input the applicable [CPCode] (root) as well
as the [path] to the desired new directory location (if applicable). End with the
[directory] variable set as the name for the new directory.
IMPORTANT: A sub-directory and file in the same directory cannot have the same name (i.e.,
regardless of the file type/extension). For example, a single directory cannot contain a sub-directory
named baseball as well as a file entitled baseball.mp4. When creating a new directory, ensure
that the name used does not already apply to a file that exists in the same location.
Method Variables
Along with the PUT/POST method, define the applicable [CPCode] (root) and
define the complete [path] (if applicable). End with the target [file.ext].
Required Action Header Field
This action has a single required action header field:
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
19
mtime=[#] - Set the [#] variable as the desired modification time for the
target content (i.e., in UNIX epoch time).
Method Variables
Along with the PUT/POST method, define the applicable [CPCode] (root) followed by the complete [path] (if applicable). End with the name of the target
directory as the [directory] variable.
Required Action Header Field
A single action header field is required:
quick-delete=imreallyreallysure - This action header field must be set to exactly
this 18-character string to minimize the chances of an inadvertent deletion.
NOTE: The quick-delete action is disabled by default for security reasons, as it allows recursive
removal of non-empty directory structures in a matter of seconds. If you wish to enable this feature,
please contact your Account Representative with the NetStorage CPCode(s) for which you wish to
use this feature.
Method Variables
Along with the PUT/POST method, define the applicable [CPCode] (root), and
input the complete [path] (if applicable). End with the filename of the file to be
renamed as the [file.ext] variable.
20
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Method Variables
Within the PUT/POST method, specify the complete [path] to, and the [target_directory] name of the directory to be removed.
Non-empty Directories and the rmdir Action
Deleting a non-empty directory requires a combination of this action and the
delete action, in order to empty the target of all contents:
1. Remove All File Contents - Use the delete action (see page 17) to remove all
individual files/symbolic links that exist in the target directory.
2. Remove All Sub-directories - Any sub-directories that exist in the target directory must also be deleted -- this involves first accessing the sub-directory, and
deleting all of its file contents via delete (as in Step 1. above), and then deleting the actual directory via rmdir.
TIP: You can recursively delete a directory (i.e., delete it and all of its contents), by incorporating
the "quick-delete" action (see page 20), but take careful note of the details for this action.
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
21
Method Variables
Along with the GET method, specify the complete [path] to (if applicable), and
the [target_object] name of the object to be targeted.
NOTE: If the object does not exist, an HTTP 404 Not Found error is returned.
Output Examples
The result of this request is returned as an XML document with the following formats (depending on the type of item targeted):
File Example:
<stat directory="/dir1/dir2">
<file type="file" name="file.html" mtime="1260000000" size="1234567"
md5="0123456789abcdef0123456789abcdef" />
</stat>
Directory Example:
<stat directory="/dir1/dir2">
<file type="dir" name="dir3" mtime="1260000000" />
</stat>
Be sure to support the standard XML quoting rules for attributes in which case a filename includes characters such as a quote ( " ) or an ampersand ( & ).
22
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Method Variables
Along with the PUT/POST method, specify the complete [path] (if applicable),
and [file.ext] of the file to be the target of the symlink.
Required Action Header Field
This action has one required action header field:
target=/[path]/[file.ext] - Include the complete path to the desired direc-
tory, as well as a desired file name (and extension) for the symlink. Ensure that
special characters (e.g., /) are query string encoded, as noted earlier in this guide
(see page 11).
IMPORTANT: A sub-directory and symlink in the same directory cannot have the same name
(i.e., regardless of the file type/extension). For example, a single directory cannot contain a sub-directory named moved_new as well as a symlink entitled moved_new. When creating a new symlink, ensure that the name used does not already apply to a sub-directory in the same location.
Testing a Symlink
Currently, the API does not offer a direct method that can be used to test a symlink.
However, this can be accomplished via edge delivery (i.e., make a HEAD request),
rather than via upload in this API. While this is the simplest course of action, it does
have its limitations -- namely, specific requirements for use:
Delivery Name - You must know the specific delivery name to use to obtain the
header.
Download Access - You must have access to download content via NetStorage.
HEAD Request
curl -I http://<Delivery Name>/<Path>/<File>
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
23
Example:
http://ssdns.mycompany.test.edgesuite.net/test/QueryMon.dmg
Response Example
HTTP/1.1 200 OK
Server: Apache
ETag: "df02a044269f0131b6fd1737aa59d284:1429578978"
Content-MD5: 3wKgRCafATG2/Rc3qlnShA==
Last-Modified: Tue, 21 Apr 2015 01:16:18 GMT
Accept-Ranges: bytes
Content-Length: 3213702
Content-Type: application/octet-stream
Date: Tue, 09 Jun 2015 22:59:57 GMT
Method Variables
Within the PUT/POST method, define the complete [path] to the [file.ext]
to be uploaded.
Optional Action Header Fields
Along with the standard upload action header content, the following optional
action header fields can be included (i.e., appended to the end of the action header,
separating each with an ampersand &).
index-zip=1 - Enable az2z processing to index uploaded .zip archive files for
the serve-from-zip feature. See the NetStorage - Users Guide for complete details
on this feature (a link to this document is maintained on page 6).
mtime=[#] - Set the [#] variable as the desired modification time for uploaded
content using an applicable UNIX epoch time value. If not specified, the actual
upload completion time will used instead.
size=[#] - Enforce that the uploaded file is precisely [#] size (i.e., in bytes).
24
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
md5=[hash] - Check and enforce that the md5sum is what is specified in this
value. The hash must be specified in lowercase, hexadecimal notation. If this
value is not specified, no content integrity checking will be performed.
sha1=[hash] - Similar to the md5 header, but uses the SHA-1 algorithm.
sha256=[hash] - Similar to the md5 header, but uses the SHA-256 algorithm.
NOTE: If multiple hash verification headers are present, at least one MUST be enforced, but the
implementation may choose to enforce multiple or all hashes present.
upload-type=[type] - Include this field to specify the upload type. The following
are supported as the [type]:, and specify either of the following types:
binary - To specify a binary-encoded upload (e.g., &upload-type=binary)
form - To specify a form-encoded upload. In this case, one of two additional
header fields should be included:
- field-name=[X] - The upload is a multi-part form, and the content
named in the field, [X] should be targeted for the upload (e.g.,
&upload-type=form&field-name=Upload).
- field-index=[#] - The upload is a multi-part form, and the content specified in field number [#] should be targeted for the upload (e.g.,
&upload-type=form&field-name=1).
NOTE: The field-index is zero-based (i.e., 0 would be set as the variable value for fieldindex=[#] to select the first field, 1 to select the second, etc.)
NOTE: If upload-type=form is specified, but neither the field-name=[X] nor fieldindex=[#] are specified, the API will try first to resolve those by looking up options in the appropriate data structure. If these values are not located, the API will default to the first form input field
(index 0).
NOTE: If the field-name=[X] or field-index=[#] header fields are provided WITHOUT
the preceding upload-type=form header field, they will be ignored.
Applicable Usage Parameters
Various usage parameters apply, as illustrated in the points that follow:
Default Upload File Size Limitation - Currently there is a default limit of 10
Gigabytes for a single file upload. Please contact your Account Representative if
you have files that are larger than this limit, for help in uploading. This value is
scheduled to be increased in the future.
Sub-directory/Filename Naming Conflicts - A sub-directory and file in the
same directory cannot have the same name (i.e., regardless of the file type/extension). For example, a single directory cannot contain a sub-directory named
baseball as well as a file entitled baseball.mp4. When uploading a new file,
ensure that the name used does not already apply to a sub-directory that currently
exists in the same location.
Content-Length Header Usage - As discussed in The PUT/POST Body Component on page 11, APIs that use the PUT method must include the ContentAkamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
25
26
Akamai Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
27
28
Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
Descript ion
400
BAD REQUEST (Can occur if the call was improperly formatted. Check the
call structure and retry.)
401
403
FORBIDDEN (The Akamai Edge server has denied access to the call. Please
verify that the call is properly formatted and retry.)
404
NOT FOUND (Can occur if the targeted object can not be found in the specified path. Check the path provided and try again.)
406
NOT ACCEPTABLE (The response type being returned is not provided in the
Accept-Type HTTP header in your Client request. See http://en.wikipedia.org/
wiki/List_of_HTTP_header_fields for further details).
409
412
PRECONDITION FAILED (The Akamai Edge Server that received the API call
thinks that the call included a 'Precondition' specification which the server
detected was not met. Check the format of the call and try again.)
422
UNPROCESSABLE ENTITY (Can occur when issues arise using the delete
action -- the targeted object for delete can not be deleted (e.g., a nonempty directory).)
423
LOCKED
500
INTERNAL SERVER ERROR (Typically due to an Akamai internal error, Contact Akamai CCare.)
501
Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
29
30
Net St orage HTTP API Specif icat ion (f or FileSt ore) - Propriet ary and Conf ident ial
E-mail
ccare@akamai.com - For routine technical support issues
specialist@akami.com - For account assistance (resetting of passwords, setup of users, portal administration, etc.).
Akamai Net St orage HTTP API Specif icat ion (f or File St ore) - Propriet ary and Conf ident ial
31
32
Akamai Net St orage HTTP API Specif icat ion (f or File St ore) - Propriet ary and Conf ident ial