assetpool
El objeto assetpool representa un directorio en un dispositivo de almacenamiento utilizado para almacenar activos descargados.
Consulte Grupo de recursos de BrightSign para obtener información y ejemplos más generales.
IDL de assetpool
interface AssetPool {
AssetPool(String poolPath);
Promise<void> protectAssets(String assetCollectionName, AssetList assets);
Promise<void> unprotectAssets(String assetCollectionName);
Promise<void> reserveStorage(long reservedStorageInBytes);
Promise<void> setMaximumPoolSize(long? maximumPoolSizeInBytes);
Promise<long> getPoolSize();
Promise<AssetValidationResult> validate(AssetList assets, AssetValidationOptions options);
Promise<AssetQueryResult> queryFiles(AssetList assets);
Promise<bool> areAssetsReady(AssetList assets);
};
interface AssetInfo {
attribute String name;
attribute String link;
[optional] attribute long size;
[optional] attribute AssetHash hash;
[optional] attribute String changeHint;
[optional] attribute AssetFetchAuthentication? auth;
[optional] attribute AssetFetchHeaders? headers;
};
interface AssetHash {
attribute String method;
attribute String hex;
};
interface AssetFetchAuthentication {
[optional] attribute String user;
[optional] attribute String password;
};
interface AssetFetchHeaders {
};
interface AssetValidationOptions {
attribute deleteCorrupt;
};
interface AssetQueryResult {
attribute String name;
attribute bool present;
};
interface AssetValidationResult {
attribute String name;
attribute String reason;
};Creación de objetos
Para crear un objeto assetpool , primero cargue el módulo brightsign/assetpool utilizando el método require() . Luego cree una instancia de la clase assetpool con un valor de cadena que especifique la ruta del pool. Debe crear solo una instancia de assetpool por ruta de pool. Esto significa que no es posible compartir de forma segura una única ruta de pool entre código BrightScript y JavaScript.
const AssetPoolClass = require("@brightsign/assetpool");
let assetPool = new AssetPoolClass("SD:/pool");AssetPool
Utilice esta interfaz para realizar operaciones en el grupo de activos.
protectAssets()
Promise<void> protectAssets(String assetCollectionName, AssetList assets)Solicita que un conjunto de archivos en el grupo de activos esté protegido contra eliminación cuando el software del sistema necesite depurar archivos del pool para liberar espacio. El parámetro assetCollectionName se utiliza para hacer referencia al conjunto de archivos si su protección debe eliminarse más adelante mediante el método unprotectAssets() . La protección solo afecta a esta instancia de assetpool y a los demás objetos que la utilizan. Debe proteger todos los activos que le interesen antes de realizar cualquier operación que pueda depurar archivos del pool para asegurarse de que los activos que todavía necesita no se eliminen. Esta configuración no persiste más allá del ciclo de vida de la instancia de assetpool .
unprotectAssets()
Promise<void> unprotectAssets(String assetCollectionName)Elimina la protección de un conjunto de archivos que fueron protegidos al pasar el correspondiente assetCollectionName al método protectAssets() .
reserveStorage()
Promise<void> reserveStorage(long reservedStorageInBytes)Las operaciones en esta instancia de assetpool, y cualquier otra instancia de assetpoolfetcher y assetrealizer que la utilice, intentarán mantener libre la cantidad de espacio especificada en el dispositivo de almacenamiento que contiene el pool. A medida que se escriben otros archivos en el dispositivo de almacenamiento, el tamaño máximo ocupado por el pool se reducirá para compensarlo. Esta configuración no se almacena de manera persistente en el pool, por lo que el método debe llamarse cada vez que se crea un objeto assetpool.
setMaximumPoolSize()
Promise<void> setMaximumPoolSize(long? maximumPoolSizeInBytes)Especifica el tamaño máximo del grupo de activos. Este método requiere más recursos que reserveStorage(), pero es útil al crear múltiples pools en un dispositivo de almacenamiento para garantizar que no crezcan de forma desigual. Esta configuración no se almacena de manera persistente en el pool, por lo que el método debe llamarse cada vez que se crea un objeto assetpool.
getPoolSize()
Promise<long> getPoolSize()Devuelve el tamaño actual del grupo de activos en bytes. Para hacerlo, es necesario recorrer la estructura de directorios del pool y examinar cada archivo de activos, lo que puede ralentizar otros accesos al dispositivo de almacenamiento. Este método no debería llamarse regularmente en código de producción.
validate()
Promise<AssetValidationResult> validate(AssetList assets, AssetValidationOptions options)Recalcula los hashes de cada archivo del pool y los compara con los valores esperados en el AssetList proporcionado. Esto significa que cada archivo de recurso debe leerse en su totalidad, lo que puede tomar mucho tiempo y puede ralentizar otros accesos al dispositivo de almacenamiento. Este método puede utilizarse para detectar corrupción del almacenamiento y del sistema de archivos. Este método devuelve una interfaz ResultadoDeValidaciónDeActivo que contiene resultados de validación para cada archivo. El segundo parámetro es una interfaz AssetValidationsOptions que especifica las opciones de validación. La única opción admitida actualmente indica si los recursos cuyos hashes no coinciden se eliminan automáticamente. El comportamiento predeterminado es dejar dichos archivos de recursos en su lugar.
queryFiles()
Promise<AssetQueryResult> queryFiles(AssetList assets)Determina si los archivos especificados están presentes en el pool de recursos. Este método devuelve una interfaz AssetQueryResult que contiene los resultados de la consulta. Este método normalmente solo es útil para depuración durante el desarrollo.
areAssetsReady()
Promise<bool> areAssetsReady(AssetList assets)Devuelve verdadero si cada recurso del AssetList está presente en el pool de recursos.
AssetInfo
Esta interfaz representa un único archivo de recurso que puede estar en el pool o puede que aún no esté en el pool. Cada recurso tiene un subconjunto de las siguientes propiedades:
- nombre string: El nombre que puede utilizarse para buscar el recurso. Para que un archivo pueda realizarse, debe tener un nombre de archivo válido sin barras. Los nombres de recursos deben ser únicos dentro de una colección de recursos, pero diferentes colecciones de recursos pueden usar el mismo nombre de recurso para referirse al mismo recurso en el pool o a un recurso diferente en el pool. Los nombres de recursos no se almacenan en el pool; la única forma de referirse a un recurso por nombre es usando una colección de recursos.
- enlace string: El URI que puede ser utilizado por assetpoolfetcher para descargar el archivo. Se admiten URI http, https, ftp y file.
- tamaño long optional: La longitud del archivo (en bytes), si se conoce.
- hash AssetHash optional: Una interfaz Hash que especifica el algoritmo hash y el valor hash del archivo. Si no se proporciona un hash, entonces se crea automáticamente a partir del link y changeHint.
- changeHint string optional: Un valor arbitrario que puede ser utilizado por el cliente para especificar que un archivo ha cambiado incluso cuando el valor hash y el URL de descarga permanecen iguales. Esto es principalmente útil cuando el hash no se conoce, pero el proveedor de la colección de recursos puede saber cuándo ha cambiado el contenido. Por ejemplo, los feeds MediaRSS a menudo proporcionan un GUID para el contenido.
- auth AssetFetchAuthentication? optional: Una interfaz AssetFetchAuthentication que especifica las credenciales que se deben usar al descargar el recurso. De forma predeterminada, las credenciales se heredan de la instancia de assetpoolfetcherassetpoolfetcher utilizada para descargar el recurso.
- encabezados AssetFetchHeaders? optional: De forma predeterminada, los encabezados HTTP especificados mediante la propiedad encabezados pasada al método starta se usarán para cada recurso. El uso de estos encabezados puede deshabilitarse para un recurso concreto estableciendo esta propiedad en null. Esto es útil si un subconjunto particular de recursos se recupera desde otro lugar que no requiere autenticación. Actualmente no es posible proporcionar encabezados específicos para un único recurso.
AssetHash
Esta interfaz contiene información hash sobre el archivo.
- método string: El algoritmo hash. Los valores aceptados incluyen "SHA1", "SHA224", "SHA256", "SHA384", "SHA512", "MD5" y "BESHA1". "BESHA1" es un algoritmo hash personalizado que solo es útil para hacer referencia a grandes recursos almacenados de forma remota y no se recomienda su uso.
- hex string: El valor hash en formato hexadecimal
AssetFetchAuthentication
Esta interfaz contiene información de autenticación para descargar archivos.
- usuario string optional: El nombre de usuario para la autenticación
- contraseña string optional: La contraseña para la autenticación
AssetValidationOptions
Esta interfaz contiene opciones de validación para el método validate() .
- deleteCorrupt: Un indicador que especifica si los archivos corruptos deben eliminarse durante la validación
AssetQueryResult
Esta interfaz es devuelta por el método queryFiles() . Cada entrada de la lista contiene los siguientes parámetros:
- nombre string: El nombre del archivo consultado
- presente bool: Un indicador que señala si el archivo consultado existe en el grupo de recursos
AssetValidationResult
Esta interfaz es devuelta por el método validate() . Cada entrada de la lista contiene los siguientes parámetros:
- nombre string: El nombre del archivo verificado
- razón string: Una explicación de una validación fallida