Jump to: navigation, search

Difference between revisions of "Orion/Server API/Transfer API"

(Import)
(Starting a file upload)
Line 9: Line 9:
 
{{Orion/ServerAPI
 
{{Orion/ServerAPI
 
| method = POST
 
| method = POST
| overview = An upload is initiated via a POST request. The request URL indicates where the file should be located once the upload is complete. An upload that is not completed in a timely fashion from the initial POST is discarded by the server.
+
| overview = An upload is initiated via a POST request. The request URL indicates where the file should be located once the upload is complete.  
 
| reqhead = /xfer/MyProj/SomeFolder
 
| reqhead = /xfer/MyProj/SomeFolder
 
| resphead = 200 OK
 
| resphead = 200 OK
  Location: /xfer/import/23A43
+
Location: /xfer/import/23A43
| explain = On success, the response body contains the raw file contents. A 304 response may be used to indicate an unchanged file when a conditional get is performed (such as using If-None-Match in conjunction with an ETag from a previous response).
+
| explain = The Location header in the response indicates the URL where chunks of the file should be uploaded. Once the server has received all chunks, the import into the workspace is completed. An upload that is not completed in a timely fashion from the initial POST is discarded by the server.
 
}}
 
}}
  

Revision as of 12:56, 17 January 2011

Under Construction: This API is not yet implemented

The transfer API is used for batch import and export of directory trees to/from an Orion workspace.

Import

Starting a file upload

Overview
An upload is initiated via a POST request. The request URL indicates where the file should be located once the upload is complete.
HTTP Method
POST
Example Request
POST /xfer/MyProj/SomeFolder

  
Example Response
HTTP/1.1 200 OK
Location: /xfer/import/23A43


Detailed Explanation
The Location header in the response indicates the URL where chunks of the file should be uploaded. Once the server has received all chunks, the import into the workspace is completed. An upload that is not completed in a timely fashion from the initial POST is discarded by the server.


  • POST request, returns a URI for resumable upload (uploading in chunks will allow for progress reporting). Request indicates whether we are uploading a file that should be stored directly in the workspace, or whether it is an archive that will need to be extracted into the workspace on the server.
  • POST Response Location indicates upload URL
  • Series of PUT requests to upload URL, using Content-Range header
  • Responses indicate what total range server already knows
  • Once server has all the bytes the file is stored or extracted into the workspace

Export

  • GET request /xfer/export/<filename.zip>
  • Request body contains:
    • Array of files/directories to export - depth infinity is assumed, children should be listed independently if depth infinity is not desired
    • Content type of response (zip, tar, etc)