Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
titleManifest REST Methods

Get Manifest

  • Purpose: Returns the manifest for a given space and storeId
  • Request: GET https://host:port/durastore/manifest/{spaceId} ? (storeID) (format)
    • spaceID - ID of the space for which the manifest will be retrieved
    • storeID (optional) - ID of the content storage provider to query (default is primary store)
    • format (optional) - TSV or BAGIT (default is TSV)
  • Response Code: 200 (on success), 404 if manifest was not found.

  • Response Body: TSV in chronological order with the following fields.

    Code Block
    titleTSV results
    space-id	content-id	MD5
    auditlogs	localhost/51/auditlogs/localhost_51_auditlogs-2014-09-10-15-56-07.tsv	6992f8e57dafb17335f766aa2acf5942
    auditlogs	localhost/51/photos/localhost_51_photos-2014-09-10-15-55-01.tsv	820e786633fb495db447dc5d5cf0b2bd


Generate Manifest

  • Purpose: Asynchronously generates a gzipped manifest for a given space and storeId. This approach may be preferable if you wish to obtain a manifest for a larger space. We recommend considering this option for spaces that are larger than 100K items.
  • Request: POST https://host:port/durastore/manifest/{spaceId} ? (storeID) (format)
    • spaceID - ID of the space for which the manifest will be generated
    • storeID (optional) - ID of the content storage provider to query (default is primary store)
    • format (optional) - TSV or BAGIT (default is TSV)
  • Response Code: 202 (on success), 404 if manifest was not found.

  • Response Body: We are processing your manifest generation request. To retrieve your file, please poll the URI in the Location header of this response

  • Response Headers:
    TSV results

    Location: <URI-of-generated-manifest>



Panel
titleStorage Report REST Methods

Get Storage Reports by Space

  • Purpose: Returns storage report summaries for a space. Report values are averaged based on the grouping internal (if groupBy=month, all data points within each month are averaged to provide an aggregate result).
  • Request: GET https://host:port/durastore/report/space/{spaceId} ? (storeID) (start) (end) (groupBy)
    • spaceID - ID of the space for which the storage report will be retrieved
    • storeID (optional) - ID of the content storage provider to query (default is primary store)
    • start (optional) - Timestamp in epoch milliseconds which defines the starting point for results. Any data points which are prior to this value are not included.
    • end (optional) - Timestamp in epoch milliseconds which defines the end point for results. Any data points which are after this value are not included.
      • usage note: To ensure that all expected data points are included, set the end timestamp to the very end of the final interval (e.g. 23:59:59 on the last day of the week/month)
    • groupBy (optional) - Grouping interval which allows for averaged results for days, weeks, and months. Valid values are: "day", "week", and "month" (default is day)
  • Response Code: 200 (on success)

  • Response Body: JSON array of storage report details

    Code Block
    titleJSON results
    [
      {"timestamp":1312588800000,"accountId":"<account-id>","spaceId":"<space-id>","storeId":"<store-id>","byteCount":1000,"objectCount":10},
      {"timestamp":1315008000000,"accountId":"<account-id>","spaceId":"<space-id>","storeId":"<store-id>","byteCount":1000,"objectCount":10},
      {"timestamp":1315526400000,"accountId":"<account-id>","spaceId":"<space-id>","storeId":"<store-id>","byteCount":1000,"objectCount":10}
    ]


Get Storage Reports by Store

  • Purpose: Returns storage report summaries for all content in a storage provider. Report values are averaged based on the grouping internal (if groupBy=month, all data points within each month are averaged to provide an aggregate result).
  • Request: GET https://host:port/durastore/report/store ? (storeID) (start) (end) (groupBy)
    • storeID (optional) - ID of the content storage provider to query (default is primary store)
    • start (optional) - Timestamp in epoch milliseconds which defines the starting point for results. Any data points which are prior to this value are not included.
    • end (optional) - Timestamp in epoch milliseconds which defines the end point for results. Any data points which are after this value are not included.
      • usage note: To ensure that all expected data points are included, set the end timestamp to the very end of the final interval (e.g. 23:59:59 on the last day of the week/month)
    • groupBy (optional) - Grouping interval which allows for averaged results for days, weeks, and months. Valid values are: "day", "week", and "month" (default is day)
  • Response Code: 200 (on success)

  • Response Body: JSON array of storage report details

    Code Block
    titleJSON results
    [
      {"timestamp":1312588800000,"accountId":"<account-id>","storeId":"<store-id>","byteCount":1000,"objectCount":10},
      {"timestamp":1315008000000,"accountId":"<account-id>","storeId":"<store-id>","byteCount":1000,"objectCount":10},
      {"timestamp":1315526400000,"accountId":"<account-id>","storeId":"<store-id>","byteCount":1000,"objectCount":10}
    ]


Get Storage Reports for all Spaces in a Store (in a single day)

  • Purpose: Returns storage report summaries for all spaces in a storage provider on a single day.
  • Request: GET https://host:port/durastore/report/store/{date} ? (storeID)
    • date - Timestamp in epoch milliseconds which specifies the requested day
    • storeID (optional) - ID of the content storage provider to query (default is primary store)
  • Response Code: 200 (on success)

  • Response Body: JSON array of storage report details

    Code Block
    titleJSON results
    [
      {"timestamp":1312588800000,"accountId":"<account-id>","spaceId":"<space-id-1>","storeId":"<store-id>","byteCount":1000,"objectCount":10},
      {"timestamp":1315008000000,"accountId":"<account-id>","spaceId":"<space-id-2>","storeId":"<store-id>","byteCount":1000,"objectCount":10},
      {"timestamp":1315526400000,"accountId":"<account-id>","spaceId":"<space-id-3>","storeId":"<store-id>","byteCount":1000,"objectCount":10}
    ]


...

Panel
titleTask REST Methods


Info

Tasks are used to perform storage provider actions which cannot be performed in a generic manner across multiple providers.

Get Tasks

  • Purpose: Provides a listing of all of the supported tasks for a given provider. Note that if no storeID parameter is included, the task listing is provided for the primary storage provider.
  • Request: GET https://host:port/durastore/task ? (storeID)
  • Response Code: 200 (on success)
  • Response Body: XML similar to:

    Code Block
    languagehtml/xml
    <list>
      <string>task1</string>
      <string>task2</string>
    </list>
    


Perform Task

  • Purpose: Performs a particular task. Note that most tasks can be performed by only one storage provider type.
  • Request: POST https://host:port/durastore/task/taskName ? (storeID)
  • Request Body: Parameters for task. Each task will expect parameters in a specific format, see task listing for more details.
  • Response Code: 200 (on success)
  • Response Body: Response value for task, format varies by task.

Tasks

Amazon S3 Storage Provider
HTTP Live Streaming support

taskName

Name

Description

Request Body

Response Body

enable-hls

Enable HLS Streaming task

Enables HTTP Live Streaming (HLS) for all files within a DuraCloud space through the use of Amazon's Cloudfront streaming capability. This task may take up to 15 minutes to complete.

When this call completes, two new properties will have been added to the set of properties for the specified space:

  • hls-streaming-host - this is the HLS host value, which can be used to generate URLs for streaming
  • hls-streaming-type - will either be OPEN or SECURE, depending on the value of the secure parameter provided when streaming was enabled


No Format
{
  "spaceId" : "",
  "secure" : "",
  "allowedOrigins" : ["",""]
}

spaceId - Name of the space for which streaming is to be enabled

secure - true or false, should streaming be secured

allowedOrigins - A list of allowed origins which limits the domains that may access the content in a streamed space under the CORS security model (optional, default is "https://*")


No Format
{
  "result" : "",
  "streamingHost" : ""
}

result - Text indicating the results of the task

streamingHost - The host name of the streaming endpoint

disable-hls

Disable HLS Streaming task

Disables streaming by removing the ability for Cloudfront to access files within a space. This does not remove the streaming distribution, only disables its use, so enabling streaming on the same space again can be performed much more quickly. Some content in the space may continue to be available for streaming up to 24 hours after streaming has been disabled.


No Format
{
  "spaceId" : ""
}

spaceId - Name of the space for which streaming is to be disabled


No Format
{
  "result" : ""
}

result - Text indicating the results of the task

delete-hls

Delete HLS Streaming task

Removes a streaming distribution created by the enable-streaming task. This task should be performed after performing the disable-streaming task. This task may take up to 15 minutes to complete, after which no content in the space will be available for streaming.

This task can be used to transition a space where streaming has been enabled from Open to Secure or Secure to Open.


No Format
{
  "spaceId" : ""
}

spaceId - Name of the space for which streaming is to be deleted


No Format
{
  "result" : ""
}

result - Text indicating the results of the task

get-url-hlsGet URL for HLS task

Retrieves a URL for a media file that is streamed through CloudFront via HLS


No Format
{
  "spaceId" : "",
  "contentId" : "",
}

spaceId - Name of the space in which the streamed content is stored

contentId - Name of the content item to be streamed 


No Format
{
  "streamUrl" : ""
}

streamUrl - The URL to be used for streaming the requested content

get-signed-cookies-urlGet Signed Cookies URL task

Generates a set of cookies to be set on the end-user's browser which will provide access to streams in a space with secure streaming enabled. Parameters provide ways to further limit access to streaming content. Rather than returning the cookies, this call stores them and returns a URL through which the cookies can be retrieved and set.


No Format
{
  "spaceId" : "",
  "minutesToExpire" : "",
  "ipAddress" : "",
  "redirectUrl" : ""
}

spaceId - Name of the space in which the streamed content is stored

minutesToExpire - Number of minutes until the generated cookies expires and streams can no longer be played (optional, default is 480)

ipAddress - IP address range where requests to stream must originate, in CIDR notation (e.g. 1.2.3.4/32) (optional)

redirectUrl - The URL the user should be redirected to after visiting the signed cookies URL



No Format
{
  "signedCookiesUrl" : ""
}

signedCookiesUrl - A URL to which the end user can be sent in order for signed cookies to be set in their browser

Note: On the subsequent call to the signedCookiesUrl, if CORS headers (Access-Control-Allow-Origin and Access-Control-Allow-Credentials) are required in the response (such as to support an XmlHttpRequest call), make sure that an Origin header is supplied on the GET to the signedCookiesUrl. The Origin header should provide the URL that is required in the Access-Control-Allow-Origin response, as the response value will mirror the request.

Storage Policy support

taskName

Name

Description

Request Body

Response Body

set-storage-policySet Storage PolicySets the S3 bucket lifecycle policies associated with a given space. This task is restricted to DuraCloud service administrators.


No Format
{
  "spaceId" : "",
  "storageClass" : "",
  "daysToTransition" : 0
}

spaceId - Name of the space for which the storage policy should be set

storageClass - One of "STANDARD_IA", "REDUCED_REDUNDANCY", or "GLACIER"

daysToTransition - Number of days content should remain at standard storage before being transitioned to the new storage class



No Format
{
  "result" : ""
}

result - Text indicating the results of the task

noop

Test task

Provides a simple way to test the calling of tasks

None

"Success"
Amazon Glacier Storage Provider

taskName

Name

Description

Request Body

Response Body
restore-contentRestore Content taskProvides the capability to request that specific content items stored in Glacier be retrieved. Content items which are retrieved are made available 3-5 hours after this request is made, and remains available for 2 weeks.Name of the space and the content item in the form: spaceID/contentIDText indicating that a restore action has been initiated (or that a restore is already in progress, in the case of duplicate requests.)
Snapshot Storage Provider

taskName

Name

Description

Request Body

Response Body
create-snapshotCreate Snapshot taskCreates a snapshot by collecting details of the snapshot and passing the request down to a bridge application which makes a copy of the contents of the space.


No Format
{
  "spaceId" : "",
  "description" : "",
  "userEmail" : ""
}



No Format
{
  "snapshotId" : "",
  "status" : ""
}


get-snapshotGet Snapshot taskRetrieves the status and details of a snapshot action


No Format
{
  "snapshotId" : ""
}



No Format
{
  "snapshotId" : "",
  "snapshotDate" : "",
  "status" : "",
  "sourceHost" : "",
  "sourceSpaceId" : "",
  "sourceStoreId" : "",
  "description" : "",
  "contentItemCount" : "",
  "totalSizeInBytes" : ""
  "alternateIds" :
    ["" , ""]    
}


cleanup-snapshotClean Up Snapshot taskHandles the removal of content items in a space after a snapshot has taken place


No Format
{
  "spaceId" : ""
}



No Format
{
  "contentExpirationDays" : ""
}


complete-snapshotComplete Snapshot taskCompletes the snapshot process


No Format
{
  "spaceId" : ""
}



No Format
{
  "result" : ""
}


complete-cancel-snapshotComplete the cancellation of a snapshotHandles the removal of any space properties, .collection-snapshot.properties file, and snapshot related user permissions. It should be called by the bridge after it has finished its cancellation process.


No Format
{
  "spaceId" : ""
}



No Format
{
  "result" : "text description of result"
}


restart-snapshotRestart Snapshot taskRestarts the snapshot process if a failure occurred while transferring from DuraCloud to the bridge.


No Format
{
  "snapshotId" : ""  
}




No Format
{
  "snapshotId" : "",
  "status" : ""
}


get-snapshotsGet List of Snapshots taskRetrieves a listing of all snapshots which have been createdNone


No Format
{
  "snapshots" : [
    {
      "snapshotId" : "",  
      "description" : "",
      "status" : ""
    }, 
    ...,
    ...  
  ]
}


get-snapshot-contentsGet List of Snapshot Contents taskRetrieves a listing of the contents of a particular snapshot


No Format
{
  "snapshotId" : "",
  "pageNumber" : 0,
  "pageSize" : 1000,
  "prefix" : ""
}



No Format
{ 
  "totalCount" : 0,
  "contentItems" : 
  [{ 
    "contentId" : "",
    "contentProperties" : 
      {
        "" : ""
      }
  }]
}


get-snapshot-historyGet Snapshot History taskRetrieves a listing of events which have occurred in the history of a particular snapshot


No Format
{
  "snapshotId" : "",
  "pageNumber" : 0,
  "pageSize" : 0
}



No Format
{
  "totalCount" : 0,
  "historyItems" : 
  [{ 
    "history" : "",
    "historyDate" : 0
  }]
}


request-restore-snapshot

Request a snapshot restoreSends a restore request to an duracloud admin level user. This call can be made by user with access to the snapshot in question. Action on the part of the admin receiving the request is required to initiate a restore. The value of the user email address parameter will be used for notification purposes once the restore begins.


No Format
{
  "snapshotId" : "",
  "userEmail" : ""
}



No Format
{
  "description" : ""
}


restore-snapshotRestore Snapshot taskInitiates the restoration of a snapshot to a DuraCloud space. This call requires admin access.


No Format
{
  "snapshotId" : "",
  "userEmail" : ""
}



No Format
{
  "spaceId" : "",
  "restoreId" : "",
  "status" : ""
}


complete-restoreComplete Restore taskCompletes the restoration action by setting up an expiration policy for restored content


No Format
{
  "spaceId" : "",                         
  "daysToExpire" : 1
}



No Format
{
  "result" : ""
}


get-restoreGet Snapshot Restore task

Retrieves the status and details of a restore action. Note that you must specify either the snapshotId or the restoreId, but not both. Specifying the snapshotId will return the most recent restoration matching that snapshotId. Specifying the restoreId you will get back the restoration matching that ID (as you would expect).


No Format
{
  "snapshotId" : "",
  "restoreId" : ""
}



No Format
{
  "restoreId" : "",
  "snapshotId" : "",
  "status" : "",
  "startDate" : "",
  "endDate" : "",
  "statusText" : "",
  "destinationHost" : "",
  "destinationPort" : "",
  "destinationStoreId" : "",
  "destinationSpaceId" : ""
}