---
title: Puntos de conexión de almacenamiento LDWS
slug: develop/es/puntos-de-conexion-de-almacenamiento-ldws
docTags: 
createdAt: 2025-03-11T07:03:32.132Z
---

## GET /v1/files/\:path/ 

Enumera directorios y archivos en la ruta solicitada.

**Segmento**

- `:path` <font color="#704ae0">string</font>: La ruta a los directorios o archivos

**Parámetro de Query String**

- `crudo` <font color="#01a0af">optional</font>: 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` <font color="#01a0af">optional</font>: 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/`

```text
GET /api/v1/files/sd/autorun.brs/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json
```

:::hint{type="success"}
**Descarga de un archivo desde el almacenamiento del reproductor&#xFEFF;**

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*):

1. Cree una instantánea en la tarjeta SD bajo remote\_snapshots usando POST /v1/snapshot
2. La respuesta será el nombre de la instantánea (por ejemplo, *img-2021-12-29-10-49-27.jpg*).
3. 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*
4. 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` <font color="#704ae0">string</font>: Nombre del directorio o archivo
- `tipo` <font color="#704ae0">string</font>: Ya sea un directorio o un archivo
- `ruta` <font color="#704ae0">string</font>: La ruta, por ejemplo, "sd"
- `mimo` <font color="#704ae0">string</font>: tipo mime (disponible solo para el tipo "file")
- `estadística` <font color="#704ae0">object</font>: Estadísticas del directorio del módulo "fs"
- `tamaño del archivo` <font color="#704ae0">int</font>: El tamaño del sistema de archivos
- `streamable` <font color="#704ae0">bool</font>: Esto siempre es `verdadero` para archivos. Si la ruta es un directorio, esto no se devuelve
- `contenido` <font color="#704ae0">string</font>: El contenido del archivo especificado

**Ejemplo de respuesta**

```json
{
    "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).

```json
{
  "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` <font color="#704ae0">string</font>: La ruta a un archivo

**Cuerpo de la solicitud**

- `nombre` <font color="#704ae0">string</font>: 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/`

```text
POST /api/v1/files/sd/test.txt/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json
Content-Type: application/json
Content-Length: 21
```

Este es el cuerpo de la solicitud de ejemplo:

```json
"name": "newname.txt"
```

**Respuesta**

El reproductor devolverá un mensaje de éxito <font color="#15803D">200</font> o un mensaje de error <font color="#B91C1C">404</font> o <font color="#B91C1C">500</font>.

**Cuerpo de la respuesta exitosa**

```json
{
  "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](https://datatracker.ietf.org/doc/html/rfc7578)). Si agrega uno o más parámetros de tipo `archivo` (el nombre del parámetro no importa), cargará los archivos seleccionados.&#x20;

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` <font color="#704ae0">string</font>: 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`

```text
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` <font color="#704ae0">bool</font>: Un indicador que señala si la operación se realizó correctamente o no
- `resultados` <font color="#704ae0">string[]</font>: Los nombres de los archivos que se crearon correctamente

**Ejemplo de respuesta (archivo de texto sin formato)**

```json
{
    "data": {
        "result": {
            "success": true,
            "results": [
                "test.txt"
            ]
        }
    }
}
```

**Ejemplo de solicitud (carpeta)**

```text
PUT /api/v1/files/sd/testfolder/
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json, application/vnd.bsn.error+json
```

**Ejemplo de respuesta (carpeta)**

```json
{
    "data": {
        "result": {
            "success": true
        }
    }
}
```

## DELETE /v1/files/\:path/ 

Elimina un archivo o directorio

**Segmento**

- `:path` <font color="#704ae0">string</font>: 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`

```text
DELETE /api/v1/files/sd/test.txt/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json
```

**Respuesta**

El reproductor devolverá un mensaje de éxito <font color="#15803D">200</font> o un mensaje de error <font color="#B91C1C">404</font> o <font color="#B91C1C">500</font>.

**Cuerpo de la respuesta exitosa**

```json
{
  "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` <font color="#704ae0">string</font> <font color="#01a0af">required</font>: La ruta al almacenamiento multimedia (por ejemplo, “/sd”)
- `configuración` <font color="#704ae0">object</font>:
  - `tipo` <font color="#704ae0">string</font> <font color="#01a0af">required</font>: El método de cifrado. Las opciones son: `‘brightsign-key'`, `'unique-key'`, `'contraseña'`, y `'ninguno'`. Las opciones se asignan a [personalizacióndedispositivo StorageEncryptionOptions](docId\:vFnnFgAbIA9qKWaLYIDpU) (`'brightsign-key'` es `"brightsign_key"`, `'unique-key'` es `"generate_key"`, `'contraseña'` es `"frase de contraseña"`. `'ninguno'` es `"ninguno"`).
  - `contraseña` <font color="#704ae0">string</font> <font color="#01a0af">optional</font>: La contraseña utilizada para cifrar el almacenamiento de medios, si existe. Este campo es obligatorio si `settings.type` es `“contraseña“`.
  - `formato` <font color="#704ae0">bool</font> <font color="#01a0af">optional</font>: Indica si el dispositivo de almacenamiento debe reformatearse o no. De forma predeterminada, el almacenamiento se reformateará.
  - `doProvision` <font color="#704ae0">bool</font> <font color="#01a0af">optional</font>: Indica si el reproductor debe aprovisionarse automáticamente con BSN.Cloud. De forma predeterminada, el reproductor no se aprovisionará automáticamente.

**Ejemplo de solicitud&#x20;**

Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:

```none
PUT /api/v1/storage/encryption/ HTTP/1.1
Host: {{playerIP}}
Authorization: {{DigestAuth}}
Accept: application/json
```

Este es el cuerpo de la solicitud de ejemplo:

```json
{
  "filePath": "/sd",
  "settings": {
    "type": "password",
    "password": "abc",
    "format": true,
    "doProvision": true
  }
}
```

**Cuerpo y ejemplo de respuesta exitosa** ****

- `éxito` <font color="#704ae0">bool</font>: Indica si el cifrado se realizó correctamente o no
- `reiniciar` <font color="#704ae0">bool</font>: Indica si el reproductor se reiniciará o no

```json
{
    "data": {
        "result": {
            "success": true,
            "reboot": false
        }
    }
}
```

**Cuerpo y ejemplo de respuesta de error**

- `error` <font color="#704ae0">string</font>: Cualquier mensaje de error asociado con la operación&#x20;

```json
{
    "data": {
        "error": {
            "status": 400,
            "message": "Storage is already encrypted. Please decrypt it first."
        }
    }
}
```

