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