Grupo de recursos de BrightSign
17 min
el brightsign asset pool proporciona un mecanismo confiable y resistente para descargar, almacenar y recuperar recursos multimedia y otros archivos requeridos por el reproductor para sus presentaciones conceptos principales el pool un pool de recursos es una jerarquía de directorios bajo una única raíz el directorio suele denominarse simplemente "pool", pero la implementación subyacente no lo requiere cada recurso se almacena en uno de varios subdirectorios para mejorar el rendimiento en sistemas de archivos simples como fat el destino de un recurso concreto en el pool se determina mediante el hash https //en wikipedia org/wiki/cryptographic hash function (o digest) de su contenido (o, en algunos casos, un hash de sus metadatos), lo que lo convierte en un almacén direccionable por contenido para poder hacer referencia a un recurso antes o después de que se haya descargado, es necesario conocer su hash (esto es similar a la forma en que se almacenan los objetos en un repositorio git ) el pool puede configurarse con un tamaño máximo y/o para garantizar que una determinada cantidad de espacio permanezca libre en el dispositivo de almacenamiento que lo contiene para evitar que el pool crezca más allá de estos límites, los archivos antiguos se "podan" los archivos que no deben podarse deben "protegerse" antes de iniciar cualquier operación que pueda escribir en el pool un recurso que se almacena en el pool usando un hash concreto solo se almacenará una vez hasta que se pode las solicitudes para descargar un recurso que ya está en el pool tendrán éxito inmediatamente, ya que el recurso ya está presente esto significa que cambiar entre presentaciones que comparten recursos, incluso quizá algunas que no se hayan usado durante un tiempo, puede evitar descargas innecesarias de recursos colecciones de recursos una colección de recursos es una lista de metadatos de recursos los metadatos contienen directamente el hash como un campo específico o el hash puede generarse directamente a partir de otros campos los metadatos también proporcionan un nombre para cada recurso, lo que permite buscar recursos y, por tanto, archivos en el pool por nombre una colección de recursos es necesaria para dar significado a los recursos almacenados en el pool las propias colecciones de recursos existen solo en memoria y no se almacenan en el pool especificación de sincronización las especificaciones de sincronización suelen denominarse "sync specs" consisten en xml o json formateados que pueden utilizarse para generar una colección de recursos, pero también tienen espacio para información adicional que puede resultar útil al descargar recursos no se recomiendan a menos que se requiera compatibilidad con sistemas existentes que las utilicen recuperador de recursos un recuperador de recursos se ejecuta de forma asíncrona descargando cualquier recurso mencionado en una colección de recursos que no esté disponible actualmente en el pool el contenido del archivo se verifica automáticamente con respecto al hash proporcionado durante la descarga protocolos se espera que los recursos se descarguen principalmente mediante http o https sin embargo, el recuperador también admite ftp y url de archivos autenticación se pueden proporcionar encabezados http arbitrarios al recuperar todos los recursos de una colección de recursos el recuperador admite autenticación http basic, digest y ntlm los recursos individuales dentro de una colección pueden marcarse para excluir el uso de estos encabezados y autenticación administración del tamaño del pool el pool está diseñado para existir durante mucho tiempo, obteniendo recursos en él según sea necesario si el pool se llena demasiado, los recursos no utilizados se podarán para liberar espacio esto significa que cualquier recurso que todavía sea necesario (o vaya a ser necesario) debe protegerse antes de realizar cualquier operación que pueda podar recursos, como la recuperación o la materialización el tamaño del pool puede restringirse de dos maneras exigiendo que una determinada cantidad de espacio en el dispositivo de almacenamiento permanezca siempre libre esto significa que puede reservarse espacio para que los registros aumenten de tamaño y cualquier operación del pool que pueda podar garantizará que al menos la cantidad solicitada de espacio permanezca libre comprobar la cantidad de espacio libre en un dispositivo de almacenamiento es una operación ligera, por lo que debe preferirse este método estableciendo un tamaño máximo que puede ocupar el pool esto puede utilizarse en combinación con el método anterior y el intento de superar cualquiera de los dos umbrales activará la poda calcular el tamaño del pool requiere sumar el tamaño de cada archivo individualmente, por lo que la primera operación puede tardar más de lo habitual una vez completado el primer cálculo, el tamaño del pool solo se actualiza en función de las modificaciones del pool, por lo que las operaciones posteriores tienen menos sobrecarga los archivos se consideran para poda según cuánto tiempo haya pasado desde la última vez que se recuperaron o se habrían recuperado si no hubieran estado ya presentes en el pool los archivos no protegidos recuperados hace más tiempo se podarán primero tenga en cuenta que, a menos que el "conjunto de trabajo" de recursos esté cerca del tamaño máximo del pool, esto a menudo puede significar que cualquier fallo al proteger recursos no tenga efectos negativos referencia a recursos en el pool los archivos de recursos a menudo pueden utilizarse directamente desde el pool el nombre de archivo del pool correspondiente a un recurso puede buscarse por nombre en una colección de recursos a veces es necesario que los archivos de recursos aparezcan con sus nombres dentro del sistema de archivos los archivos de recursos pueden copiarse a un directorio de destino esto se conoce como "materialización" y solo debe utilizarse cuando sea necesario, ya que puede ser muy lento como alternativa, puede hacerse que una colección de recursos aparezca como un sistema de archivos virtual unicidad del hash el hash de un archivo de recurso concreto debe ser único esto ocurre automáticamente con algoritmos hash normales como sha 256, ya que no deberían ser posibles las colisiones hash si dos archivos con contenido diferente generan el mismo hash, esto se conoce como una "colisión hash" se sabe que algunos algoritmos hash más antiguos, como md5 y sha 1, tienen colisiones hash, pero estas solo ocurren cuando los archivos han sido construidos deliberadamente para crear dichas colisiones; no ocurren por accidente a veces el hash real del recurso no está disponible antes de la descarga en este caso, se aplican funciones hash conjuntamente a partes de los metadatos del recurso, como la url y una pista de cambio si el recurso cambia, entonces alguna parte de los metadatos también debe cambiar para que el recuperador de recursos sepa que debe descargar el recurso nuevamente no es posible utilizar encabezados http como etag o last modified como parte del hash, ya que estos no se conocen antes de la descarga y pueden cambiar de forma independiente metadatos de recursos etiqueta descripción name nombre de archivo relativo (puede contener barras, pero en ese caso el archivo puede no materializarse) los nombres de assets deben ser únicos dentro de una colección de assets, pero se espera que diferentes colecciones de assets contengan assets con el mismo nombre el nombre del asset no se almacena en el pool, y el mismo archivo de asset en el pool puede ser referenciado por múltiples nombres, incluso dentro de la misma colección de assets size longitud del archivo en bytes hash algoritmo hash y hash del contenido del archivo link url de origen change hint un valor arbitrario utilizado por el cliente para garantizar que los archivos que tienen el mismo hash no se consideren idénticos a menos que este valor y la url también coincidan auth especifique información de autenticación adicional (consulte a continuación) probe datos de sondeo de medios (útiles para cheetah y panther) pattern patrón comodín contra el cual hacer coincidencias hashing algoritmos hash simples md5, sha1, sha224, sha256, sha384, sha512 algoritmo besha1 este algoritmo solo es útil para hacer referencia a contenido remoto que es demasiado grande para descargarse durante la creación su uso no es recomendable sin hash si no se especifica ningún hash, entonces el hash se genera internamente combinando mediante hash los campos "link" y "change hint" descripción general del uso el pool de assets de brightsign puede usarse desde brightscript o desde javascript, pero no es posible compartir un único pool entre ambos sin embargo, el método brightscript rohtmlwidget mapfilefromassetpool puede utilizarse para hacer que una colección de assets en particular aparezca como archivos bajo un prefijo uri en particular brightscript tbd javascript cree un objeto @brightsign/assetpool para representar el pool de assets pasando la ruta al directorio del pool cree la estructura de datos de la colección de assets este es un arreglo javascript de objetos que contiene los metadatos de los assets que desea usar proteja los assets llamando al método assetpool protectassets para evitar que se eliminen con el fin de liberar espacio cree un objeto @brightsign/assetfetcher pasando el pool llame al método assetfetcher start pasando la colección de assets cualquier asset que no esté presente en el pool comenzará a descargarse el progreso puede supervisarse agregando controladores para los eventos progressevent y fileevent si el intento de obtención se completa correctamente, entonces la promesa devuelta por assetfetcher start se resolverá si al menos uno de los assets no pudo descargarse completamente, entonces la promesa será rechazada cuando se resuelva la promesa devuelta por assetfetcher start, el intento de obtención estará completo cree su conjunto de assets como un arreglo javascript de objetos que contienen los metadatos cree un objeto @brightsign/assetfiles pasando el pool y la colección de recursos este objeto se puede utilizar para recuperar la ruta completa a los archivos en el pool que corresponden al nombre del recurso especificado consulte assetpoolfiles docid\ o uut2yl90kzc5nt8i0hv para obtener más información cree un objeto @brightsign/assetrealizer pasando el pool y llame al método realize si desea copiar recursos desde el pool a un directorio utilizando los nombres de los recursos tenga en cuenta que esto es lento y solo se recomienda para archivos que deben existir en el sistema de archivos, como los archivos de actualización de brightsignos (bsfw) cree un objeto @brightsign/assetcollectionview pasando el pool y la colección de recursos para crear un dispositivo de almacenamiento virtual que contenga los recursos utilizando los nombres y la estructura de directorios de la colección de recursos consulte assetpoolfiles docid\ o uut2yl90kzc5nt8i0hv para obtener más información ejemplo ejemplo de grupo de recursos de brightsign docid\ vwu1okqbrjwyqjnksx5mi muestra cómo se puede utilizar asset pool desde javascript funciona tanto desde nodejs como desde chromium, y se puede ejecutar desde el shell de brightsign de la siguiente manera node bs assetpool example js