Orion/Server API/Transfer API

From Eclipsepedia

Jump to: navigation, search

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. An upload that is not completed in a timely fashion from the initial POST is discarded by the server.
HTTP Method
POST
Example Request
POST /xfer/MyProj/SomeFolder

  
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

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)