Orion/Server API/Transfer API
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.
Starting a file upload
- 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.
- HTTP Method
- Example Request
- Example Response
HTTP/1.1 200 OK Location: /xfer/import/23A43
- Detailed Explanation
- 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).
- 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
- 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)