assetpool
15 min
el objeto assetpool representa un directorio en un dispositivo de almacenamiento utilizado para almacenar activos descargados consulte grupo de recursos de brightsign docid\ thz wp xjdozepebp4nch 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 \<font color="#6b21a8">string\</font> 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 \<font color="#6b21a8">string\</font> el uri que puede ser utilizado por assetpoolfetcher para descargar el archivo se admiten uri http, https, ftp y file tamaño \<font color="#6b21a8">long\</font> \<font color="#01a0af">optional\</font> la longitud del archivo (en bytes), si se conoce hash \<font color="#6b21a8">assethash\</font> \<font color="#01a0af">optional\</font> 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 \<font color="#6b21a8">string\</font> \<font color="#01a0af">optional\</font> 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 \<font color="#6b21a8">assetfetchauthentication\</font> \<font color="#6b21a8">?\</font> \<font color="#01a0af">optional\</font> 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 assetpoolfetcher docid\ kbrcxmgdzal3klaii8rhv utilizada para descargar el recurso encabezados \<font color="#6b21a8">assetfetchheaders?\</font> \<font color="#01a0af">optional\</font> de forma predeterminada, los encabezados http especificados mediante la propiedad encabezados pasada al método s tarta 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 \<font color="#6b21a8">string\</font> 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 \<font color="#6b21a8">string\</font> el valor hash en formato hexadecimal assetfetchauthentication esta interfaz contiene información de autenticación para descargar archivos usuario \<font color="#6b21a8">string\</font> \<font color="#01a0af">optional\</font> el nombre de usuario para la autenticación contraseña \<font color="#6b21a8">string\</font> \<font color="#01a0af">optional\</font> 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 \<font color="#6b21a8">string\</font> el nombre del archivo consultado presente \<font color="#6b21a8">bool\</font> 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 \<font color="#6b21a8">string\</font> el nombre del archivo verificado razón \<font color="#6b21a8">string\</font> una explicación de una validación fallida