Download File
/documents/api/1.2/files/{fileId}/data
Get file content for the specified file as a stream.
Request
- application/json
- application/xml
-
fileId: string
Globally unique identifier (GUID) for the file.
-
version(optional): string
Specify the version number of the file to download. If the version is not specified, the latest version is used.
-
Range(optional): string
The standard HTTP
Range
header allows clients to stream parts of the file rather than the entire file. The value of theRange
header can be one of the following formats:- bytes=startByte - endByte
For example to receive the first 500 bytes usebytes=0-500
- bytes=skipBytes-
For example to skip the first 500 bytes usebytes=500-
- bytes=-lastBytes
For example to receive the last 500 bytes usebytes=-500
- bytes=startByte - endByte
-
accessToken(optional): string
Applink access token authorizing the current user to access the parent folder or this file. This parameter is mandatory if
appLinkID
is used. It can be used as accessToken or AccessToken. -
appLinkID(optional): string
Applink ID authorizing the current user to access the parent folder or this file. Any time the parameter
appLinkID
is used, a parameteraccessToken
must be provided as well. To work, this applink must have at least the downloader role granted. It can be used as appLinkID or AppLinkID. -
dAccessCode(optional): string
Access code needed to use protected public links. It needs to be sent as part of a Cookie header in the following format:
dAccessCode-<linkID>=<passcodeValue>
-
linkID(optional): string
Public link ID of a public link authorizing the current user to access this file. To work, this public link must have at least the downloader role granted. It can be used as linkID or LinkID.
Response
- application/octet-stream
200 Response
Complete data stream of the file contents.
206 Response
Partial data stream of the file contents.
403 Response
Forbidden if the user does not have read permission.
404 Response
File ID is not found.
416 Response
Requested range cannot be satisfied.
Examples
The following example downloads version 2
of the specified file. If the status code indicates success (200
), the response includes a data stream that contains the file contents.
GET .../files/D34A657B8723A96097F80926T0000000000100000001/data?version=2
Request Header
None.
Request Body
None.
HTTP Status Code
HTTP_STATUS = 200
Example 2
The following example downloads version 1
of the specified file. If the status code indicates success (200
), the response includes a data stream that contains the file contents. The example uses a public link ID because this file is under a folder structure not owned by or shared with the current user.
GET .../files/D34A657B8723A96097F80926T0000000000100000001/data?version=1
Request Header
LinkID: LF8D36FAFAB4388BECEAC4AEB5D17B95F47087F4E518
Request Body
None.
HTTP Status Code
HTTP_STATUS = 200
Example 3
The following example downloads version 1
of the specified file. If the status code indicates success (200
), the response includes a data stream that contains the file contents. The example uses a public link ID protected by an access code because this file is under a folder structure not owned by or shared with the current user. An access code (test12345
) is submitted as part of a Cookie in the request header.
GET .../files/D34A657B8723A96097F80926T0000000000100000001/data?version=1
Request Header
LinkID: LF8D36FAFAB4388BECEAC4AEB5D17B95F47087F4E518 Cookie: dAccessCode-LF8D36FAFAB4388BECEAC4AEB5D17B95F47087F4E518=test12345
Request Body
None.
HTTP Status Code
HTTP_STATUS = 200
Example 4
The following example requests a download of version 1
of the specified file. Because this file is under a folder structure not owned by or shared with the current user, an access denied error message is returned.
GET .../files/D34A657B8723A96097F80926T0000000000100000001/data?version=1
Request Header
None.
Request Body
None.
HTTP Status Code
HTTP_STATUS = 403
JSON Response
{ "errorCode": "-20", "errorKey": "!csUnableToDownloadFile!csCloudItemInsufficientPrivileges,User BB,fFileGUID:D34A657B8723A96097F80926T0000000000100000001,GET_FILE", "errorMessage": "Unable to download file. User 'User BB' has insufficient privilege to access fFileGUID:D34A657B8723A96097F80926T0000000000100000001 with service GET_FILE.", "errorType": "file", "id": "DBFC40982617C949CA373B08B5D17B95F47087F4E518", "title": "Unable to download file. User 'User BB' has insufficient privilege to access fFileGUID:D34A657B8723A96097F80926T0000000000100000001 with service GET_FILE.", "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" }
Example 5
The following example requests a download of version 1
of the specified file. This file is under a folder structure not owned by or shared with the current user, and only a public link protected by an access code is available. An error is returned because the access code was not submitted as part of the request.
GET .../files/D34A657B8723A96097F80926T0000000000100000001/data?version=1
Request Header
LinkID: LF8D36FAFAB4388BECEAC4AEB5D17B95F47087F4E518
Request Body
None.
HTTP Status Code
HTTP_STATUS = 403
JSON Response
{ "errorCode": "-18", "errorKey": "!csUnableToDownloadFile!csAccessCodeRequiredForLinkAccess", "errorMessage": "Unable to download file. The access code must be provided to access the link.", "errorType": "file", "id": "D34A657B8723A96097F80926T0000000000100000001", "title": "Unable to download file. The access code must be provided to access the link.", "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" }
Example 6
The following example downloads the current version of the specified file. If the status code indicates success (200
), the response includes a data stream that contains the file contents. The example uses an applink ID because this file is under a folder structure not owned by or shared with the current user. The applink ID and access token are submitted in the request header.
GET .../files/DED694950C14AFF280419F9AB5D17B95F47087F4E518/data
Request Header
appLinkID: LF5Bxj4TPo_p4n4qWn0tbKTicR2cTUJKv7X_ng9E7ry93rRuDokPqS1d6-wKwhb_wtcGYFDsI_cNMxeKQ-HR-FXQhiVoGRTYM_MPZY8qpICfYU94mmnMjM_cvsRhKMzc0NJgvwEJfqqDwPsAVrhc8cmg== accessToken: 352FpiMmW66PeYI1Gh5b83I9CXRwZhLfYAu4TXdqpzD8uNKUBMZVVJ3ZvivUW8kQ
Request Body
None.
HTTP Status Code
HTTP_STATUS = 200