Saltar al contenido principal

UrlDownloadPipeline

UrlDownloadPipeline es una extensión abstracta de DownloadPipeline diseñada para manejar subidas usando adaptadores de almacenamiento basados en URLs (UrlStorageAdapter). A diferencia de HashDownloadPipeline, esta pipeline da por hecho que el plan delta (qué chunks descargar) es calculado externamente y proporcionado a la pipeline.

Esta pipeline es comúnmente usada para los sistemas de almacenamiento remotos donde los chunks tienen una URL dedicada para la descarga.


Constructor​

ParámetroTipoDescripción
storageUrlStorageAdapterAdaptador de almacenamiento basado en urls que se usará (se crea automáticamente con el cliente).
reconstructionReconstructionServiceReconstructionService usado para reconstrucción de archivos locales.
validationValidationServiceValidationService usado para validar archivos tras reconstruirlos.
deltaDeltaServiceDeltaService usado para generar índices y compararlos.
configRacDeltaConfigConfiguración base del cliente.

Métodos​

MétodoDevuelveDescripción
execute(localDir, { downloadUrls, indexUrl }, strategy, plan?, options?)Promise<void>Realiza un proceso completo de descarga para el directorio.
downloadAllMissingChunks(downloadUrls, target, options?)Promise<ChunkSource>Este método descargará primero todos los chunks necesarios, y los guardará temporalmente en disco o memoria.

Detalles de métodos​

execute(localDir, urls, strategy, plan?, options?)​

Realiza un proceso completo de descarga para el directorio vía urls.

Parámetros

NombreTipoDescripción
localDirstringDirectorio donde se descargará todo.
urls.downloadUrlsRecord<string, ChunkUrlInfo>Las urls identificadas por hash para descargar los chunks. Mira ChunkUrlInfo abajo.
urls.indexUrlstringUrl para descargar el rd-index.json remoto.
strategyUpdateStrategyEstrategia a usar para descargar y reconstruir. Mira UpdateStrategy
planDeltaPlanDeltaPlan opcional para referencia, si no se proporciona ninguno, se intentará generar.
optionsDownloadOptionsOpciones para el progreso de descarga. Mira DownloadOptions
export interface ChunkUrlInfo {
url: string;
offset: number;
size: number;
filePath: string;
}

Echa un ojo a ChunkUrlInfo

Devuelve

Promise<void>


downloadAllMissingChunks(downloadUrls, target, options?)​

Este método descargará primero todos los chunks necesarios, y los guardará temporalmente en disco o memoria.

Devolverá un ChunkSource, los ChunkSource serán necesarios para reconstruir archivos, este método SOLO devolverá chunks sources de memoria o disco para reconstrucción offline, si quieres usar almacenamiento como S3, puedes omitir esto y usar directamente un StorageChunkSource con reconstruction.reconstructAll() si lo prefieres.

(Usar StorageChunkSource descargará los chunks y reconstruirá los archivos al mismo tiempo, concurrentemente)

Parámetros

NombreTipoDescripción
downloadUrlsRecord<string, ChunkUrlInfo>Las urls identificadas por hash para descargar los chunks. Mira ChunkUrlInfo arriba.
target'memory' | 'disk'Objetivo del ChunkSource resultante.
optionsDownloadOptionsOpciones para el progreso de descarga. Mira DownloadOptions

Devuelve

Promise<void>


Relacionado​