Puntos de conexión de almacenamiento LDWS
GET /v1/files/:path/
Enumera directorios y archivos en la ruta solicitada.
Segmento
- :path string: La ruta a los directorios o archivos
Parámetro de Query String
- crudo optional: Si la ruta es para un dispositivo de almacenamiento, esto devolverá su contenido sin procesar. Por ejemplo, la siguiente solicitud sería GET /api/v1/files/sd/?raw
- contenido optional: Si se especifica un archivo, esto devolverá el contenido de ese archivo
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- :path se establece en /sd/autorun.brs/
GET /api/v1/files/sd/autorun.brs/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/jsonDescarga de un archivo desde el almacenamiento del reproductor
Para descargar directamente un archivo desde el almacenamiento del reproductor, agregue ?contents&stream al final de la URL. Aquí hay un flujo de trabajo de ejemplo (suponiendo una URL base de http://192.168.0.00/api/v1):
- Cree una instantánea en la tarjeta SD bajo remote_snapshots usando POST /v1/snapshot
- La respuesta será el nombre de la instantánea (por ejemplo, img-2021-12-29-10-49-27.jpg).
- Para descargar directamente la instantánea creada en el reproductor: GET http://192.168.0.12/api/v1/files/sd/remote_snapshots/img-2021-12-29-10-49-27.jpg?contents&stream
- Si introduce solo ?contents, obtendrá el archivo en codificación base64.
Cuerpo de la respuesta
Este método devuelve los metadatos de un directorio o archivo (suponiendo que el parámetro de query string crudo no esté configurado):
- nombre string: Nombre del directorio o archivo
- tipo string: Ya sea un directorio o un archivo
- ruta string: La ruta, por ejemplo, "sd"
- mimo string: tipo mime (disponible solo para el tipo "file")
- estadística object: Estadísticas del directorio del módulo "fs"
- tamaño del archivo int: El tamaño del sistema de archivos
- streamable bool: Esto siempre es verdadero para archivos. Si la ruta es un directorio, esto no se devuelve
- contenido string: El contenido del archivo especificado
Ejemplo de respuesta
{
"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
}
}
}Ejemplo de respuesta al devolver el contenido del archivo
Tenga en cuenta que una vez que tenga la cadena de datos, tendrá que decodificarla (por ejemplo, con el método atob en JavaScript).
{
"data": {
"result": {
"mimeType": null,
"name": "autorun.brs",
"contents": "TGlicmFyeSAiYXV0b3B....<very-large-data-string>..."
}
}
POST /v1/files/:path/
Cambia el nombre de un archivo en la ruta (que debe incluir el nombre del archivo).
Segmento
- :path string: La ruta a un archivo
Cuerpo de la solicitud
- nombre string: El nuevo nombre del archivo
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- :path se establece en /sd/test.txt/
POST /api/v1/files/sd/test.txt/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json
Content-Type: application/json
Content-Length: 21Este es el cuerpo de la solicitud de ejemplo:
"name": "newname.txt"Respuesta
El reproductor devolverá un mensaje de éxito 200 o un mensaje de error 404 o 500.
Cuerpo de la respuesta exitosa
{
"data": {
"result": {
"success": true
}
}
}PUT /v1/files/:path/
Carga archivos o crea directorios. El cuerpo de la solicitud debe ser de tipo multiparte /datos del formulario (consulte RFC 7578). Si agrega uno o más parámetros de tipo archivo (el nombre del parámetro no importa), cargará los archivos seleccionados.
Para crear un directorio, elimine el datos del formulario del cuerpo y agregue el directorio como parámetro URL, :path. Consulte el ejemplo a continuación.
Segmento
- :path string: La ruta es la carpeta en la que desea cargar el archivo.
Cuerpo de la solicitud
Los archivos como form data, como se muestra en el ejemplo siguiente.
Ejemplo de solicitud (Archivo)
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- ruta se establece en sd
PUT /api/v1/files/sd/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Content-Length: 227
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="/path/to/file/test.txt"
Content-Type: text/plain
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--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"
]
}
}
}Ejemplo de solicitud (carpeta)
PUT /api/v1/files/sd/testfolder/
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json, application/vnd.bsn.error+jsonEjemplo de respuesta (carpeta)
{
"data": {
"result": {
"success": true
}
}
}DELETE /v1/files/:path/
Elimina un archivo o directorio
Segmento
- :path string: La ruta al archivo o directorio
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- :path se establece en sd/test.txt
DELETE /api/v1/files/sd/test.txt/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/jsonRespuesta
El reproductor devolverá un mensaje de éxito 200 o un mensaje de error 404 o 500.
Cuerpo de la respuesta exitosa
{
"data": {
"result": {
"success": true
}
}
}PUT /v1/storage/encryption/
Cifra el almacenamiento multimedia seleccionado. Tenga en cuenta que reformatear el dispositivo de almacenamiento borrará su contenido. Este endpoint está disponible en BOS versión 9.0.197 y posteriores.
Cuerpo de la solicitud
- filePath string required: La ruta al almacenamiento multimedia (por ejemplo, “/sd”)
- configuración object:
- tipo string required: El método de cifrado. Las opciones son: ‘brightsign-key', 'unique-key', 'contraseña', y 'ninguno'. Las opciones se asignan a personalizacióndedispositivo StorageEncryptionOptions ('brightsign-key' es "brightsign_key", 'unique-key' es "generate_key", 'contraseña' es "frase de contraseña". 'ninguno' es "ninguno").
- contraseña string optional: La contraseña utilizada para cifrar el almacenamiento de medios, si existe. Este campo es obligatorio si settings.type es “contraseña“.
- formato bool optional: Indica si el dispositivo de almacenamiento debe reformatearse o no. De forma predeterminada, el almacenamiento se reformateará.
- doProvision bool optional: Indica si el reproductor debe aprovisionarse automáticamente con BSN.Cloud. De forma predeterminada, el reproductor no se aprovisionará automáticamente.
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
PUT /api/v1/storage/encryption/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/jsonEste es el cuerpo de la solicitud de ejemplo:
{
"filePath": "/sd",
"settings": {
"type": "password",
"password": "abc",
"format": true,
"doProvision": true
}
}Cuerpo y ejemplo de respuesta exitosa
- éxito bool: Indica si el cifrado se realizó correctamente o no
- reiniciar bool: Indica si el reproductor se reiniciará o no
{
"data": {
"result": {
"success": true,
"reboot": false
}
}
}Cuerpo y ejemplo de respuesta de error
- error string: Cualquier mensaje de error asociado con la operación
{
"data": {
"error": {
"status": 400,
"message": "Storage is already encrypted. Please decrypt it first."
}
}
}