PUT /files/{:path}
Uploads a new file to the player storage
If you are uploading zip and media files, you should use BOS version 8.5.44 or 9.0.101 or later.
Segment
path
string: The path is the folder in which you want to upload the file (for example:"/sd"
).
Request Body Parameters
files
object[]:fileName
string: The name of the filefileContents
string: The content of the file. It can be provided as plain text or as Data URL.fileType
string: Mime type
Request Example
The following request example would be used with one of the two request body examples (Plain Text or Data URL) below:
Code Block |
---|
PUT /rest/v1/files/sd/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Content-Type: application/json
Content-Length: 196 |
In the request body examples below, use the FileReader's readAsText() or readAsDataURL() method to derive the fileContents
value.
Plain Text Request Body
Any file with mime type "text/*", or any “brs”, “json”, “js”, “xml”, “rtf” extension, can be sent as plain text using FileReader's readAsText() method:
Code Block | ||
---|---|---|
| ||
{
"data": {
"fileUploadPath": "/sd",
"files": [
{
"fileName": "test.txt",
"fileContents": "Lorem Ipsum",
"fileType": "text/plain"
}
]
}
} |
Data URL Request Body
For all other file types, including zip and media files, use the data URL format using FileReader's readAsDataURL() method:
Code Block | ||
---|---|---|
| ||
{
"data": {
"fileUploadPath": "/sd",
"files": [
{
"fileName": "image.png",
"fileContents": "data:image/png;base64,DQpJbnRlcmZh.....",
"fileType": "image/png"
}
]
}
} |
Response Body
success
bool: A flag that indicates if the operation succeeded or notresults
string[]: The names of the files that were successfully created
POST /files/{:path}/
Renames a file in the path (which should include the file name)
Segment
path
string: The path to the file (for example,/sd
)
Request Example
Code Block |
---|
POST /rest/v1/files/sd/test.txt/?destinationType=player&destinationName={{deviceSerial} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Content-Type: application/json
Content-Length: 57 |
This is the example request body:
Code Block | ||
---|---|---|
| ||
{
"data": {
"name": "newname.txt"
}
} |
Response Body
The player will return a success or error message.
DELETE /files/{:path}/
Deletes a file from the player storage
Segment
path
string: The path to the file (for example,/sd
)
Request Example
Code Block |
---|
DELETE /rest/v1/files/sd/test.txt/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json |
Response Body
The player will return a success or error message.GET /re-provision/
Calling this endpoint will re-provision the player (in other words, the B-Deploy setup currently associated with the player will be downloaded, and the device will go through setup again).
The re-provision process involves the following steps:
If the “networking” section of the player’s registry contains the access and refresh tokens, it is assumed that the player was previously set up for BSN.cloud. So BrightSign keeps some setup-related keys in the networking section (these keys are listed at right) and deletes the rest of the registry entries. If the networking section does not include access and refresh tokens, it will empty the whole networking section, format the SD card, and reboot to try to provision the player.
BrightSign also sets the “deviceSetupComplete“ parameter in the “autorun” section to null, so that the player can set up again. This key is set to 1 only if the player was previously set up through the on-device setup option.
The code removes all files from the default storage device (this is almost always the SD card). You do not need to format the storage separately.
The player reboots, fetches the setup package from B-Deploy, and re-provisions itself.
Request Example
Code Block |
---|
GET /rest/v1/reprovision/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1 Host: ws.bsn.cloud Authorization: Bearer {{UserAccessToken}} Accept: application/json, application/vnd.bsn.error+json |
Response Body
success
bool:True
means that the operation succeeded and the player will reboot.False
means that the operation failed.
Expand | |||||
---|---|---|---|---|---|
| |||||
|
POST /snapshot/
Takes a screenshot of the current screen contents and saves it to storage. See Remote DWS APIs#RequestMessageFormat for the Query String Parameters.
Request Example
Code Block | ||
---|---|---|
| ||
POST /rest/v1/snapshot/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1 Host: ws.bsn.cloud Authorization: Bearer {{UserAccessToken}} |
Response Body
remoteSnapshotThumbnail
string: A snapshot image thumbnail in Base64 formatfilename
string: The name and path of the snapshot image file. CallGET /file/{:path
} to retrieve the full-resolution image.timestamp
string: The date and time the snapshot was taken. The date/time is formatted as "yyyy-mm-dd hh:mm:ss <timezone>"
.
PUT /custom/
Sends custom data to the player. The player in turn sends the data as a message (in JSON string format) on UDP port 5000, which can then be captured by the autorun.brs or a JavaScript application on the player.
Request Body
command
string: The custom data to sendreturnImmediately
bool: A flag specifying whether the server should respond to the PUT request immediately (true
) or wait on a response to the UDP message from the BrightScript/JavaScript application (false
).
Request Example
Code Block |
---|
PUT /rest/v1/custom/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1 Host: ws.bsn.cloud Authorization: Bearer {{UserAccessToken}} Accept: application/json, application/vnd.bsn.error+json Content-Type: application/json Content-Length: 89 |
This is the example request body:
Code Block | ||
---|---|---|
| ||
{ "data": { "command": "next", "returnImmediately": true } } |
Response Body
If the returnImmediately
property is true
, the server will return a success or error message. If the property is false
, the server will wait for a response from UDP port 5000 on the player and send it as the response to the PUT request.
GET /download-firmware/
Instructs the player to download and apply a firmware update.
Query String Parameter
url
string: The public URL for downloading the firmware-update file.
Request Example
Code Block |
---|
GET /rest/v1/download-firmware/?url=https://bsncloud.s3.amazonaws.com/public/cobra-9.0.110-update.bsfw&destinationType=player&destinationName={{deviceSerial}} HTTP/1.1 Host: ws.bsn.cloud Authorization: Bearer {{UserAccessToken}} Accept: application/json, application/vnd.bsn.error+json |
Response Body
success
bool: A flag indicating whether the download was successfulreboot
bool: A flag indicating whether the player will reboot when applying a firmware update