assetfetcher
El objeto assetfetcher permite descargar archivos a un grupo de recursos (que se representa en JavaScript como una instancia de grupoderecursosassetpool).
IDL de assetfetcher
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 .
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()
Promise<void> start(AssetList list, AssetPoolFetcherParams assetPoolParams[optional])Comienza a obtener los archivos especificados en la interfaz grupoderecursosassetpool.AssetList 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()
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 string: Contiene fileevent para indicar el tipo del evento.
- fileName string: El nombre del recurso que se está descargando.
- índice int: El índice basado en cero del archivo en la interfaz AssetList de assetpoolassetpool.AssetList .
- responseCode int: 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
También existen numerosos códigos de error en caso de fallo; consulte esta páginathis page para obtener una lista no exhaustiva.
- error string: 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 string: Contiene progressevent para indicar el tipo del evento.
- fileName string: El nombre del archivo que se está descargando actualmente
- índice int: El índice basado en cero del archivo actual en la interfaz AssetList de assetpoolassetpool.AssetList
- total int: El número total de archivos en el objeto Lista de activos
- archivoActualTransferido long: La cantidad de bytes que se han descargado hasta ahora para el recurso actual.
- currentFileTotal long optional: 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 Autenticación: Una interfaz de Autenticación que especifica las credenciales que se usarán al descargar el recurso
- enableUnsafeAuthentication bool: 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 bool: 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 bool: 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 bool: 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 bool: 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.
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 string: 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 HeaderList: Una lista de encabezados que se pasarán a las solicitudes HTTP realizadas por la instancia de assetpoolfetcher .
- proxy string: 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 Array<String>: 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 unsigned int: 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 unsigned int: 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 string: 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 string: 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 MinTransferRate: 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 long: 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 bool: 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 string: El nombre de usuario para la autenticación
- contraseña string: 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 string: El valor del encabezado
MinTransferRate
Los valores de esta interfaz se utilizan para calcular la velocidad mínima de transferencia.
- bytesPerSecond int: La velocidad de transferencia por debajo de la cual, cuando se promedia durante el período periodInSeconds, la transferencia de archivos finalizará
- periodInSeconds int: El período de tiempo durante el cual se promedia la medición de bytes por segundo measurement
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.