Puntos de conexión de almacenamiento de rDWS
URL base para estos endpoints: https://ws.bsn.cloud/rest/v1/
_________________________________________________________________________
GET /files/{:path}/
Enumera los directorios y/o archivos en una ruta
Segmento
- ruta string: La ruta a los directorios o archivos
Parámetro de Query String
- crudo optional: Devuelve el contenido sin procesar de un directorio
- contenido optional: Si se especifica un archivo, esto devolverá el contenido de ese archivo
Ejemplo de solicitud
GET /rest/v1/files/sd/autorun.brs/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+jsonCuerpo de la respuesta
- tipo string: Ya sea un directorio o un archivo
- ruta string: La ruta; por ejemplo, "sd"
- stat object: Estadísticas del directorio del módulo "fs"
- archivos object[ ]:
- nombre string: Nombre del archivo o directorio
- tipo string: Ya sea "file" o "dir"
- ruta string: La ruta relativa del archivo o directorio
- stat object: Estadísticas del archivo del módulo “fs”
- mimo string: tipo mime (disponible solo para el tipo "file")
- storageInfo object: Si la ruta en la URL es un dispositivo de almacenamiento, esto devuelve información sobre el dispositivo de almacenamiento. Para obtener más información, consulte storageinfo.
- tipoDeSistemaDeArchivos string: El tipo de sistema de archivos (por ejemplo, "fat32")
- estadísticas object:
- blockSize int: El tamaño de un bloque nativo
- bytesFree int: La cantidad de espacio libre
- filesFree int: El número de inodos usados
- filesUsed int: El número de inodos libres
- isReadOnly bool: Una marca que indica si el sistema de archivos es de solo lectura
- sizeBytes int: La cantidad de espacio total
- montado en string: La ubicación donde está montado el sistema de archivos (por ejemplo, "/storage/sd")
- contenido object[ ]:
- nombre string: El nombre del archivo o directorio
- tipo string: Ya sea "file" o "dir"
- ruta string: La ruta absoluta del archivo o directorio
- stat object: Las estadísticas del módulo "fs"
- mimo string: tipo MIME (disponible solo para el tipo "file")
- niños object[ ]: Esto está disponible solo para tipos de directorio y tendrá el mismo formato que "contents
Cuerpo de respuesta al devolver contenidos
- nombre string: El nombre del archivo
- mimeType string: Tipo MIME del archivo
- contenido string: El contenido del archivo
Ejemplos de respuesta
{
"route": "/v1/files/sd/autorun.brs",
"method": "GET",
"data": {
"result": {
"name": "sd/autorun.brs",
"type": "file",
"path": "sd/autorun.brs",
"mime": "application/octet-stream",
"stat": {
"dev": 45921,
"mode": 33277,
"nlink": 1,
"uid": 0,
"gid": 1003,
"rdev": 0,
"blksize": 32768,
"ino": 40,
"size": 1144340,
"blocks": 2240,
"atimeMs": 1699401600000,
"mtimeMs": 1699423824000,
"ctimeMs": 1699423824440,
"birthtimeMs": 0,
"atime": "2023-11-08T00:00:00.000Z",
"mtime": "2023-11-08T06:10:24.000Z",
"ctime": "2023-11-08T06:10:24.440Z",
"birthtime": "1970-01-01T00:00:00.000Z"
},
"fileSize": 1144340,
"streamable": true
}
}
}Si pasó un parámetro de consulta contenido en su solicitud, debería esperar una respuesta como la siguiente. Tenga en cuenta que una vez que tenga la cadena de datos, tendrá que decodificarla (por ejemplo, con el método atob en JavaScript).
{
"route": "/v1/files/sd/autorun.brs",
"method": "GET",
"data": {
"result": {
"mimeType": null,
"name": "autorun.brs",
"contents": "TGlicmFyeSAiYXV0b3B....<very-large-data-string>..."
}
}
}PUT /files/{:path}
Carga un nuevo archivo o carpeta en el almacenamiento del reproductor
Si está cargando archivos zip y multimedia, debe usar BOS versión 8.5.44 o 9.0.101 o posterior.
Segmento
- ruta string: La ruta es la carpeta en la que desea cargar el archivo (por ejemplo: "/sd").
Cuerpo de la solicitud
- archivos object[]:
- fileName string: El nombre del archivo
- contenidoDelArchivo string: El contenido del archivo. Puede proporcionarse como texto sin formato o como Data URL.
- tipo de archivo string: Tipo MIME
Ejemplo de solicitud (Archivo)
El siguiente ejemplo de solicitud se usaría con uno de los dos ejemplos de cuerpo de solicitud (Texto sin formato o Data URL) a continuación:
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: 196En los ejemplos de cuerpo de solicitud a continuación, use el método FileReader's readAsText() o readAsDataURL() para derivar el valor de contenidoDelArchivo .
Cuerpo de solicitud de texto sin formato: Cualquier archivo con tipo MIME "text/*", o cualquier extensión “brs”, “json”, “js”, “xml”, “rtf”, puede enviarse como texto sin formato usando el método FileReader's readAsText():
{
"data": {
"fileUploadPath": "/sd",
"files": [
{
"fileName": "test.txt",
"fileContents": "Lorem Ipsum",
"fileType": "text/plain"
}
]
}
}Cuerpo de solicitud Data URL: Para todos los demás tipos de archivo, incluidos archivos zip y multimedia, use el formato data URL usando el método FileReader's readAsDataURL():
{
"data": {
"fileUploadPath": "/sd",
"files": [
{
"fileName": "image.png",
"fileContents": "data:image/png;base64,DQpJbnRlcmZh.....",
"fileType": "image/png"
}
]
}
}Cuerpo de la respuesta
- éxito bool: Un indicador que señala si la operación se realizó correctamente o no
- resultados string[]: Los nombres de los archivos que se crearon correctamente
Ejemplo de respuesta (Archivo de texto sin formato)
{
"data": {
"result": {
"success": true,
"results": [
"test.txt"
]
}
},
"route": "/v1/files/sd",
"method": "PUT"
}Ejemplo de solicitud (Carpeta)
PUT /rest/v1/files/sd/testfolder/?destinationType=player&destinationName={{deviceSerial}}
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+jsonEjemplo de respuesta (Carpeta)
{
"route": "/v1/files/sd/testfolder/",
"method": "PUT",
"data": {
"result": {
"success": true
}
}
}POST /files/{:path}/
Cambia el nombre de un archivo en la ruta (que debe incluir el nombre del archivo)
Segmento
- ruta string: La ruta al archivo (por ejemplo, /sd)
Ejemplo de solicitud
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: 57Este es el cuerpo de la solicitud de ejemplo:
{
"data": {
"name": "newname.txt"
}
}Cuerpo de la respuesta
El reproductor devolverá un mensaje de éxito o error.
DELETE /files/{:path}/
Elimina un archivo del almacenamiento del reproductor
Segmento
- ruta string: La ruta al archivo (por ejemplo,/sd)
Ejemplo de solicitud
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+jsonCuerpo de la respuesta
El reproductor devolverá un mensaje de éxito o error.