roAssetFetcher
19 min
este objeto contiene funciones para descargar archivos al pool brightsign habilita los protocolos http //, https //, ftp\ //, y file // el equivalente en javascript es assetpoolfetcher docid\ kbrcxmgdzal3klaii8rhv creación de objetos el objeto roassetfetcher debe recibir una instancia de roassetpool al crearse createobject("roassetfetcher", pool as roassetpool) ejemplo pool = createobject("roassetpool", "pool") fetcher = createobject("roassetfetcher", pool) ifassetfetcher getfailurereason() as string devuelve una cadena de error si un método de roassetfetcher ha fallado (esto normalmente se indica devolviendo false) la cadena de error puede ayudar a diagnosticar el fallo setuserandpassword(user as string, password as string) as boolean establece las cadenas predeterminadas de usuario y contraseña que se utilizarán para todas las solicitudes de descarga que no estén marcadas de otro modo mediante los siguientes atributos \<auth inherit=”no”> o \<auth user=”user” password =”password”> enableunsafeauthentication(enable as boolean) as boolean admite autenticación http básica si es verdadero la autenticación http utiliza un protocolo inseguro, lo que podría permitir que otros determinen fácilmente la contraseña el objeto roassetfetcher seguirá prefiriendo el digest http más seguro si es compatible con el servidor si este método es falso (que 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(enable as boolean) as boolean admite autenticación http básica frente a proxies si es verdadero (que, a diferencia de enableunsafeauthentication() , es la configuración predeterminada) la autenticación http utiliza un protocolo inseguro, lo que podría permitir que otros determinen fácilmente la contraseña si este método es falso , se negará a proporcionar contraseñas mediante autenticación http básica y cualquier solicitud que requiera este tipo de autenticación fallará enableencodings(enable as boolean) as boolean habilita la compresión http, que comunica al servidor que el sistema puede aceptar cualquier codificación que el objeto roassetfetcher sea capaz de decodificar por sí mismo (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 roassetfetcher solo ven los datos decodificados y desconocen la codificación que se está utilizando asyncdownload(assets as roassetcollection) as boolean comienza a rellenar el pool de recursos utilizando los archivos enumerados en la instancia de roassetcollection proporcionada los archivos que aún no estén en el pool se descargarán automáticamente se generan eventos durante el proceso de descarga para indicar si las descargas de archivos individuales se realizaron correctamente o fallaron; finalmente, se generará un único evento indicando si toda la colección de recursos se descargó correctamente o no consulte las entradas roassetfetcherevent y roassetfetcherprogressevent para obtener más detalles asyncsuggestcache(spec as roassetcollection) as boolean comienza a descargar los archivos requeridos desde la instancia de roassetcollection proporcionada y luego se desconecta poco después si el reproductor está configurado para utilizar un proxy configurado adecuadamente (ya sea de forma global o mediante el método setproxy() ), entonces el proxy continuará descargando los archivos, haciéndolos fácilmente disponibles para futuras llamadas a asyncdownload() este método genera un mensaje roassetfetcherevent con el código de respuesta 202 ("accepted") para indicar éxito otros errores se informarán como de costumbre el código final del evento de todos los archivos completados siempre será 2 ("event all failed") porque la descarga no se completa asynccancel() as boolean cancela cualquier solicitud “async” pendiente tenga en cuenta que, antes y durante esta llamada de método, los eventos asociados con una acción asíncrona pueden ponerse en cola no se pondrán más eventos en cola una vez que esta llamada devuelva el control recomendamos recopilar cualquier evento pendiente antes de llamar a otros métodos “async” en el mismo objeto para evitar confusiones enablepeerverification(verification as boolean) as boolean habilita la comprobación de certificados tls/ssl este método está establecido en verdadero de forma predeterminada deshabilitar la verificación de pares le permite omitir la comprobación de certificados vencidos enablehostverification(verification as boolean) as boolean habilita la comprobación del certificado tls/ssl para el nombre de host correcto este método está configurado en 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 del par y la verificación del host son comprobaciones de seguridad importantes que evitan ataques de "man in the middle" estas funciones solo deben deshabilitarse después de una cuidadosa consideración de las implicaciones de seguridad setcertificatesfile(filename as string) as boolean configura un conjunto alternativo de certificados ca para la conexión este método es útil si los certificados de conexión están firmados por una ca que no se encuentra 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 bien conocida) este método reemplaza la lista predeterminada, por lo que el archivo de certificados proporcionado debe contener todos los certificados ca aceptables requeridos para la conexión addheader(name as string, value as string) as boolean especifica un encabezado que se pasará a las solicitudes http realizadas por la instancia de roassetfetcher una descarga determinada no incluirá el encabezado si tiene el atributo \<headers inherit=”no”> en la especificación de sincronización setheaders(headers as roassociativearray) as boolean especifica todos los encabezados que se pasarán a las solicitudes http realizadas por la instancia de roassetfetcher este método elimina cualquier encabezado configurado previamente una descarga determinada no incluirá los encabezados si tiene el atributo \<headers inherit=”no”> en la especificación de sincronización setproxy(proxy as string) as boolean establece el nombre o la dirección del servidor proxy que utilizará la instancia de roassetfetcher 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 por ejemplo, si la dirección ip es actualmente 192 168 1 2 y el proxy está configurado en "proxy ", el reproductor intentará utilizar un proxy llamado "proxy 192 168" setproxybypass(hostnames as array) as boolean exime a los hosts especificados de la configuración del proxy el arreglo proporcionado debe estar compuesto por uno o más nombres de host la instancia de roassetfetcher intentará llegar a los hosts especificados directamente en lugar de utilizar el proxy especificado con el método setproxy() por ejemplo, el nombre de host "http //example com " eximiría a "http //example com ", "http //example com 80 " y "http //www example com " de la configuración del proxy setfileprogressintervalseconds(interval as integer) as boolean especifica el intervalo (en segundos) entre eventos de progreso cuando se descarga un archivo individual configurar el intervalo en 1 deshabilita todos los eventos de progreso configurar el intervalo en 0 especifica que los eventos deben generarse con la mayor frecuencia posible, aunque esto ralentizará el proceso de transferencia si el intervalo está configurado en 0 o en cualquier entero positivo, los eventos siempre se generarán al inicio y al final de la descarga del archivo independientemente del tiempo transcurrido el intervalo predeterminado es de 300 segundos setfileretrycount(count as integer) as boolean especifica el número máximo de veces que se reintentará la descarga de cada archivo antes de pasar a la siguiente descarga de archivo el número de reintentos predeterminado es cinco setrelativelinkprefix(prefix as string) as boolean especifica un prefijo que se añadirá al inicio de los enlaces relativos en la especificación de sincronización 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 están almacenados en el mismo lugar los enlaces no relativos no se ven afectados por este método bindtointerface(interface as integer) as boolean garantiza que la solicitud http salga a través de la interfaz de red especificada (0 para ethernet o 1 para wifi) el comportamiento predeterminado (que puede especificarse pasando 1) 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 ronetworkconfiguration si ambas 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 setmaximumreceivebytespersecond(bytes per second as double) as boolean limita la velocidad a la que se realizan las descargas mediante la instancia de roassetfetcher la velocidad de datos de origen no está bajo el control directo del reproductor brightsign, pero las velocidades de descarga deberían promediar por debajo del valor especificado con el tiempo este método devuelve verdadero en caso de éxito y falso en caso de fallo en caso de fallo, el método getfailurereason() puede proporcionar más información setminimumtransferrate(bytes per second as integer, period in seconds as integer) as boolean establece la velocidad mínima de transferencia para cada descarga de archivo una transferencia se cancelará si la velocidad cae por debajo de bytes per second cuando se promedia durante periodo en segundos tenga en cuenta que si la transferencia es a través de internet, es posible que no desee configurar periodo en segundos en un número pequeño en caso de que los problemas de red causen caídas temporales en el rendimiento para transferencias de archivos grandes y un límite pequeño de bytes per second , puede ser apropiado un promedio de quince minutos o más ifmessageport setport(port as romessageport) publica mensajes de tipo roassetfetcherevent y roassetfetcherprogressevent en el puerto de mensajes adjunto ifuserdata setuserdata(user data as object) establece los datos del usuario que se devolverán cuando se generen eventos getuserdata() as object devuelve los datos del usuario que se establecieron previamente mediante setuserdata() devolverá no válido si no se han establecido datos