---
title: roAssetFetcher
slug: develop/es/roassetfetcher
docTags: 
createdAt: 2025-03-11T07:07:17.200Z
---

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.

```text
CreateObject("roAssetFetcher", pool As roAssetPool)
```

### Ejemplo

```text
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.

:::hint{type="danger"}
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.
