Contents

Import

Starting a file upload

Overview

A resumable chunked upload is initiated via a POST request. The request URL indicates where the file should be located once the upload is complete. The request must indicate the total size of the file the server should expect.

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.

Uploading a file

After initiating the transfer, uploads are performed as many times as required using PUT actions:

A response of 308 indicates that the server has not yet received all required bytes, and the Range response header indicates the bytes known to the server so far. When the server has received all bytes, a 201 Created response is returned, with a Location header specifying the location of the newly added file or directory. The X-Xfer-Options header specifies what the server should do with the file when the upload completes. By default the server assumes the file is an archive and will attempt to extract it into the destination location. When importing a single file, the "raw" option can be used to indicate that the server should simply place the uploaded file at the specified location.

Importing a zip

The chunked file upload service can also be used to import an archive file that will be expanded upon completion of import. This allows a large number of files to be imported into a project at once.

Overview

An upload is initiated via a POST request. The request URL indicates where the file should be located once the upload is complete. The request must indicate the total size of the file the server should expect.

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 file is unzipped into the destination location on the server. An upload that is not completed in a timely fashion from the initial POST is discarded by the server.

Importing a file via a single POST call

Overview

Although the resumable chunk-based upload approach is recommended for large files, you can also import a file with a single POST call. Simply omit the X-Xfer-Content-Length header, and include the file to be uploaded as the request body.

If the POST method body contains the entire content, then 201 response is returned and the import is complete. If the entire content is not received, then a 308 response is returned along with the range received by the server. The client can then resume or complete the upload via a subsequent PUT operation with appropriate range. The file is only imported into the workspace once the entire content is received.