---
title: assetfetcher
slug: develop/es/assetfetcher
docTags: 
createdAt: 2025-03-11T07:07:19.526Z
---

El objeto *assetfetcher* permite descargar archivos a un grupo de recursos (que se representa en JavaScript como una instancia de [grupoderecursos](docId:_RNY34Khc4OPcNP3TK0Vn)).

**IDL de assetfetcher**

```text
interface AssetPoolFetcher {
    AssetPoolFetcher(AssetPool pool);
    Promise<void> start(AssetList list, AssetPoolFetcherParams assetPoolParams[optional]);
    Promise<void> cancel();
};

interface FileEvent {
    attribute String type;
    attribute String fileName;
    attribute int index;
    attribute int responseCode;
    attribute String error;
};

interface ProgressEvent {
    attribute String type;
    attribute String fileName;
    attribute int index;
    attribute int total;
    attribute long currentFileTransferred;
    [optional] attribute long currentFileTotal;
};

interface AssetPoolFetcherParams {
    attribute Authentication auth;
    attribute bool enableUnsafeAuthentication;
    attribute bool enableUnsafeProxyAuthentication;
    attribute bool enableEncodings;
    attribute bool enablePeerVerification;
    attribute bool enableHostVerification;
    attribute String certificatesFile;
    attribute HeaderList headers;
    attribute String proxy;
    attribute Array<String> proxyBypassList;
    attribute unsigned int progressInterval;
    attribute unsigned int fileRetryCount;
    attribute String relativeLinkPrefix;
    attribute String interfaceName;
    attribute MinTransferRate minimumTransferRate;
    attribute double maximumTransferRate;
    attribute bool onlyRequestCache;
};

interface Authentication {
    attribute String username;
    attribute String password;
};

interface Header {
    attribute String value;
};

interface MinTransferRate {
    attribute int bytesPerSecond;
    attribute int periodInSeconds;
};
```

## Creación de objetos

Para crear un objeto *assetpoolfetcher* primero deberá crear una instancia de *assetpool* . Luego, cargue el módulo `brightsign/assetpoolfetcher` usando el método `require()` y cree una instancia de la clase *assetpoolfetcher* usando la instancia de *assetpool* .

```javascript
const AssetPoolClass = require("@brightsign/assetpool");
let assetPool = new AssetPoolClass("SD:/pool");
 
const AssetPoolFetcherClass = require("@brightsign/assetpoolfetcher");
let assetPoolFetcher = new AssetPoolFetcherClass(assetPool);
```

## AssetPoolFetcher

Esta interfaz le permite iniciar o detener el captador de recursos.

### start()

```javascript
Promise<void> start(AssetList list, AssetPoolFetcherParams assetPoolParams[optional])
```

Comienza a obtener los archivos especificados en la interfaz [grupoderecursos](docId:_RNY34Khc4OPcNP3TK0Vn) AssetList pasada. El proceso de obtención se configura con la interfaz *Parámetros de AssetPoolFetcher* pasada. La promesa de `start()` se devuelve cuando el proceso de obtención de recursos se completa. Alternativamente, la promesa será rechazada si la instancia de *assetpoolfetcher* ya se ha iniciado. Este método puede hacer que los recursos se eliminen.

### cancel()

```javascript
Promise<void> cancel()
```

Cancela el proceso de obtención de recursos. La promesa no se resolverá hasta que la cancelación se complete.

## FileEvent

Esta interfaz contiene información sobre un intento de transferencia de archivos.

- `tipo` <font color="#6B21A8">string</font>: Contiene `fileevent` para indicar el tipo del evento.
- `fileName` <font color="#6B21A8">string</font>: El nombre del recurso que se está descargando.
- `índice` <font color="#6B21A8">int</font>: El índice basado en cero del archivo en la interfaz AssetList de [assetpool](docId:_RNY34Khc4OPcNP3TK0Vn) .
- `responseCode` <font color="#6B21A8">int</font>: El código de respuesta del protocolo asociado con el evento. Los siguientes códigos indican éxito:
  - 200: Transferencia HTTP exitosa
  - 226: Transferencia FTP exitosa
  - 0: Transferencia de archivo local exitosa

:::hint{type="info"}
También existen numerosos códigos de error en caso de fallo; consulte [esta página](docId\:FagNioLz1cU0PT-Y8b-6c) para obtener una lista no exhaustiva.
:::

- `error` <font color="#6B21A8">string</font>: Un mensaje de error textual que puede ser más descriptivo que responseCode para errores locales.

## ProgressEvent

Esta interfaz contiene información sobre el proceso de obtención de recursos.

- `tipo` <font color="#6B21A8">string</font>:  Contiene `progressevent` para indicar el tipo del evento.
- `fileName` <font color="#6B21A8">string</font>: El nombre del archivo que se está descargando actualmente
- `índice` <font color="#6B21A8">int</font>: El índice basado en cero del archivo actual en la interfaz AssetList de [assetpool](docId:_RNY34Khc4OPcNP3TK0Vn)
- `total` <font color="#6B21A8">int</font>: El número total de archivos en el objeto *Lista de activos*
- `archivoActualTransferido` <font color="#6B21A8">long</font>: La cantidad de bytes que se han descargado hasta ahora para el recurso actual.
- `currentFileTotal` <font color="#6B21A8">long</font> <font color="#01a0af">optional</font>: Si el tamaño del recurso en bytes se conocía antes de que comenzara la descarga, entonces se proporciona en esta propiedad. Si el tamaño no se conocía, entonces esta propiedad puede no estar presente.

## AssetPoolFetcherParams

Esta interfaz contiene parámetros de configuración para el proceso de obtención de recursos.

- `auth` <font color="#6B21A8">Autenticación</font>: Una interfaz de *Autenticación* que especifica las credenciales que se usarán al descargar el recurso
- `enableUnsafeAuthentication`  <font color="#6B21A8">bool</font>: Una marca que habilita la autenticación HTTP básica. La autenticación HTTP utiliza un protocolo inseguro, lo que podría permitir que otros determinen fácilmente la contraseña. El objeto *assetpoolfetcher* seguirá prefiriendo el digest HTTP más seguro si el servidor lo admite. Si este parámetro es `falso` (lo cual es la configuración predeterminada), se negará a proporcionar contraseñas mediante autenticación HTTP básica, y cualquier solicitud que requiera esta autenticación fallará.
- `enableUnsafeProxyAuthentication` <font color="#6B21A8">bool</font>: Una marca que habilita la autenticación HTTP básica contra proxies. La autenticación HTTP utiliza un protocolo inseguro, lo que podría permitir que otros determinen fácilmente la contraseña. Si este parámetro es `falso`, se negará a proporcionar la contraseña del proxy mediante autenticación HTTP básica, y cualquier solicitud que requiera este tipo de autenticación fallará. A diferencia de `enableUnsafeAuthentication`, este parámetro está configurado como `verdadero` de forma predeterminada. 
- `enableEncodings` <font color="#6B21A8">bool</font>: Una marca que habilita la compresión HTTP, la cual comunica al servidor que el sistema puede aceptar cualquier codificación que la instancia de *assetpoolfetcher* sea capaz de decodificar por sí misma (este comportamiento está habilitado de forma predeterminada). Las codificaciones compatibles actualmente incluyen "deflate" y "gzip", que permiten la compresión transparente de las respuestas. Los clientes de la instancia de *assetpoolfetcher* solo ven los datos decodificados y desconocen la codificación que se está utilizando.
- `enablePeerVerification` <font color="#6B21A8">bool</font>: Una marca que habilita la comprobación de certificados TLS/SSL. Este parámetro está configurado como `verdadero` de forma predeterminada. Deshabilitar la verificación de pares le permite omitir la comprobación de certificados vencidos.
- `enableHostVerification` <font color="#6B21A8">bool</font>: Una marca que habilita la comprobación del certificado TLS/SSL para el nombre de host correcto. Este parámetro está configurado como `verdadero` de forma predeterminada. Deshabilitar la verificación del host le permite aceptar un certificado enviado para un nombre de host incorrecto.

:::hint{type="danger"}
La verificación de pares y la verificación del host son comprobaciones de seguridad importantes que previenen ataques de "man-in-the-middle". Estas funciones solo deben deshabilitarse después de considerar cuidadosamente las implicaciones de seguridad.
:::

- `certificatesFile` <font color="#6B21A8">string</font>: El nombre de archivo de un conjunto alternativo de certificados de CA para la conexión. Este método es útil si los certificados de conexión están firmados por una CA que no está en la lista de confianza predeterminada (por ejemplo, si su organización utiliza una jerarquía de CA privada que no está firmada por una CA raíz conocida). Este archivo reemplaza la lista predeterminada, por lo que el archivo de certificados proporcionado debe contener todos los certificados de CA aceptables requeridos para la conexión.
- `encabezados` <font color="#6B21A8">HeaderList</font>: Una lista de encabezados que se pasarán a las solicitudes HTTP realizadas por la instancia de *assetpoolfetcher* .
- `proxy` <font color="#6B21A8">string</font>: El nombre o la dirección del servidor proxy que será utilizado por la instancia de *assetpoolfetcher* . La cadena del proxy debe tener el formato "http\://user\:password\@hostname\:port". Puede contener hasta cuatro caracteres "\*"; cada carácter "\*" puede utilizarse para reemplazar un octeto de la dirección IP actual del reproductor. Por ejemplo, si la dirección IP actual es 192.168.1.2 y el proxy está configurado como "proxy-\*-\*", el reproductor intentará utilizar un proxy llamado "proxy-192-168". Si está presente, esta configuración reemplaza la configuración global de proxy del reproductor.
- `proxyBypassList` <font color="#6B21A8">Array</font><font color="#6B21A8">&lt;String&gt;</font>: Una lista de hosts exentos de la configuración del proxy. La lista debe constar de uno o más nombres de host (no se pueden utilizar direcciones IP). La instancia de *assetpoolfetcher* intentará comunicarse directamente con los hosts especificados en lugar de utilizar el proxy especificado con el parámetro `proxy` . Por ejemplo, el nombre de host "example.com" excluiría "example.com", "example.com:80" y "www\.example.com" de la configuración del proxy. Si está presente, esta configuración reemplaza la configuración global de omisión de proxy.
- `progressInterval` <font color="#6B21A8">unsigned int</font>: El intervalo (en segundos) entre eventos de progreso cuando se descarga un archivo individual. Configurar el intervalo en `null` deshabilita todos los eventos de progreso. Configurar el intervalo en `0` especifica que los eventos deben generarse tan frecuentemente como sea posible, aunque esto ralentizará el proceso de transferencia. Si el intervalo se configura en 0 o en cualquier entero positivo, los eventos siempre se generarán al inicio y al final de la descarga de archivos independientemente del tiempo transcurrido. El intervalo predeterminado es de 300 segundos.
- `fileRetryCount` <font color="#6B21A8">unsigned int</font>: El número máximo de veces que se reintentará cada descarga de archivo antes de pasar a la siguiente descarga de archivo. El número predeterminado de reintentos es cinco.
- `relativeLinkPrefix` <font color="#6B21A8">string</font>: Un prefijo que se antepondrá a los enlaces que no tengan un protocolo en el objeto *Lista de activos* . Normalmente, este método se utiliza para hacer que los URI `file:///` sean independientes de la unidad, pero también puede utilizarse para reducir el tamaño de la especificación de sincronización si todos los archivos se almacenan en el mismo lugar. Los enlaces que tienen un protocolo no se ven afectados por este método.
- `interfaceName` <font color="#6B21A8">string</font>: Una cadena que especifica qué interfaz de red debe intentar utilizar la instancia de *assetpoolfetcher* para el acceso a la red, por ejemplo "eth0" para Ethernet o "wlan0" para WiFi. El comportamiento predeterminado (indicado por un valor null) es enviar solicitudes utilizando la interfaz de red más apropiada, lo que puede depender de la métrica de enrutamiento configurada mediante el objeto *networkconfiguration* . Si varias interfaces están en la misma red de capa 2, es posible que este método no funcione como se espera debido al modelo weak-host de Linux.
- `minimumTransferRate` <font color="#6B21A8">MinTransferRate</font>: Una interfaz *MinTransferRate* que especifica la tasa de transferencia mínima promedio para las descargas de archivos. Si una transferencia de archivos cae por debajo de esta tasa, se terminará.
- `maximumTransferRate` <font color="#6B21A8">long</font>: La velocidad máxima de transferencia para las descargas de archivos. La velocidad de los datos de origen no está bajo el control directo del reproductor BrightSign, pero las velocidades de descarga deberían mantenerse por debajo del valor especificado en promedio a lo largo del tiempo. 
- `onlyRequestCache` <font color="#6B21A8">bool</font>: Un indicador que señala que el reproductor debería desconectarse poco después de comenzar la descarga del recurso. Si el reproductor está configurado para usar un proxy configurado adecuadamente (ya sea de forma global o mediante la interfaz *Parámetros de AssetPoolFetcher*), entonces el proxy continuará descargando los archivos, haciéndolos fácilmente disponibles para llamadas de obtención de recursos en el futuro. Si este parámetro es `verdadero`, el `fileevent` devolverá el código de respuesta 202 ("Accepted") para indicar éxito. Otros errores se informarán como de costumbre. El `progressevent` para el evento final de todos los archivos completados siempre será -2 ("EVENT\_ALL\_FAILED") porque la descarga no se completa.

## Autenticación

Esta interfaz contiene información de autenticación para descargar archivos.

- `nombre de usuario` <font color="#6B21A8">string</font>: El nombre de usuario para la autenticación
- `contraseña` <font color="#6B21A8">string</font>: La contraseña para la autenticación

## Encabezado

Esta interfaz contiene una lista de encabezados para pasar a una URL de descarga de archivos. Cada entrada de la lista contiene los siguientes parámetros:

- `valor` <font color="#6B21A8">string</font>: El valor del encabezado

## MinTransferRate

Los valores de esta interfaz se utilizan para calcular la velocidad mínima de transferencia.

- `bytesPerSecond` <font color="#6B21A8">int</font>: La velocidad de transferencia por debajo de la cual, cuando se promedia durante el período `periodInSeconds`, la transferencia de archivos finalizará
- `periodInSeconds` <font color="#6B21A8">int</font>: El período de tiempo durante el cual se promedia la medición de `bytes por segundo `measurement

:::hint{type="info"}
Si la transferencia se realiza a través de Internet, es posible que no quiera establecer `periodInSseconds` en un número pequeño en caso de que los problemas de red provoquen caídas temporales en el rendimiento. Para transferencias de archivos grandes y un límite pequeño de `bytesPerSecond` , puede ser apropiado promediar quince minutos o más.
:::

