Files Actions#
https://api.losant.com/applications/APPLICATION_ID
/files
Below are the various requests that can be performed against the Files resource, as well as the expected parameters and the potential responses.
Get#
Returns the files for an application
Method And Url #
GET https://api.losant.com/applications/APPLICATION_ID
/files
Authentication #
A valid api access token is required to access this endpoint. The token must include at least one of the following scopes: all.Application, all.Application.read, all.Organization, all.Organization.read, all.User, all.User.read, files.*, or files.get.
Request Path Components #
Path Component | Description | Example |
---|---|---|
APPLICATION_ID | ID associated with the application | 575ec8687ae143cd83dc4a97 |
Request Query Parameters #
Name | Required | Description | Default | Example |
---|---|---|---|---|
sortField | N | Field to sort the results by. Accepted values are: lastUpdated, type, name, creationDate | lastUpdated | sortField=subject |
sortDirection | N | Direction to sort the results by. Accepted values are: asc, desc | asc | sortDirection=asc |
page | N | Which page of results to return | 0 | page=0 |
perPage | N | How many items to return per page | 1000 | perPage=10 |
filterField | N | Field to filter the results by. Blank or not provided means no filtering. Accepted values are: name | filterField=name | |
filter | N | Filter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering. | filter=myFile | |
type | N | Limit by the type (file or directory) of the file | type=file | |
status | N | Limit the result to only files of this status. Accepted values are: completed, pending | status=completed | |
directory | N | Get files that are inside of this directory | directory=/a/path/ |
Request Headers #
Name | Required | Description | Default |
---|---|---|---|
Authorization | Y | The token for authenticating the request, prepended with Bearer |
Curl Example #
curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_API_ACCESS_TOKEN' \
-X GET \
https://api.losant.com/applications/APPLICATION_ID/files
Successful Responses #
Code | Type | Description |
---|---|---|
200 | Files Schema | Collection of files |
Error Responses #
Code | Type | Description |
---|---|---|
400 | Error | Error if malformed request |
404 | Error | Error if application was not found |
Post#
Create a new file for an application
Method And Url #
POST https://api.losant.com/applications/APPLICATION_ID
/files
Authentication #
A valid api access token is required to access this endpoint. The token must include at least one of the following scopes: all.Application, all.Organization, all.User, files.*, or files.post.
Request Path Components #
Path Component | Description | Example |
---|---|---|
APPLICATION_ID | ID associated with the application | 575ec8687ae143cd83dc4a97 |
Request Headers #
Name | Required | Description | Default |
---|---|---|---|
Authorization | Y | The token for authenticating the request, prepended with Bearer |
Request Body #
The body of the request should be serialized JSON that validates against the File Post schema. For example, the following would be a valid body for this request:
{
"name": "file.csv",
"type": "file",
"parentDirectory": "/",
"fileSize": 500,
"contentType": "text/csv"
}
Curl Example #
curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_API_ACCESS_TOKEN' \
-X POST \
-d '{"name":"file.csv","type":"file","parentDirectory":"/","fileSize":500,"contentType":"text/csv"}' \
https://api.losant.com/applications/APPLICATION_ID/files
Successful Responses #
Code | Type | Description |
---|---|---|
201 | File Post Response | Successfully created file and returned a post url to respond with |
Error Responses #
Code | Type | Description |
---|---|---|
400 | Error | Error if malformed request |
404 | Error | Error if application was not found |
Usage of Response#
After making a Files
POST to Losant with the information about your file, you will need to make a second request, using the information in the upload
field of the file post response, to perform the actual upload of your file. For example, below is how to use curl and the file post response to perform the upload of the file data:
curl -X POST \
-F 'Content-Type=<YOUR_POST_RESPONSE.upload.fields.Content-Type>' \
-F 'key=<YOUR_POST_RESPONSE.upload.fields.key>' \
-F 'X-Amz-Algorithm=<YOUR_POST_RESPONSE.upload.fields.X-Amz-Algorithm>' \
-F 'X-Amz-Credential=<YOUR_POST_RESPONSE.upload.fields.X-Amz-Credential>' \
-F 'X-Amz-Date=<YOUR_POST_RESPONSE.upload.fields.X-Amz-Date>' \
-F 'Policy=<YOUR_POST_RESPONSE.upload.fields.Policy>' \
-F 'X-Amz-Signature=<YOUR_POST_RESPONSE.upload.fields.X-Amz-Signature>' \
-F 'file=@<YOUR_LOCAL_FILE_PATH>' \
'<YOUR_POST_RESPONSE.upload.url>'
As another example, here is how you would upload the file contents using Javascript in a browser:
var filePostResponse = /* result of Losant API Files POST call */;
var fileBlob = /* a blob, buffer, or browser file instance */;
var formData = new FormData();
formData.append('Content-Type',
filePostResponse.upload.fields['Content-Type']);
formData.append('key', filePostResponse.upload.fields.key);
formData.append('X-Amz-Algorithm',
filePostResponse.upload.fields['X-Amz-Algorithm']);
formData.append('X-Amz-Credential',
filePostResponse.upload.fields['X-Amz-Credential']);
formData.append('X-Amz-Date',
filePostResponse.upload.fields['X-Amz-Date']);
formData.append('Policy', filePostResponse.upload.fields['Policy']);
formData.append('X-Amz-Signature',
filePostResponse.upload.fields['X-Amz-Signature']);
formData.append('file', fileBlob);
var xhr = new XMLHttpRequest();
xhr.open('POST', filePostResponse.upload.url, true);
xhr.send(formData);