Saltar al contenido principal

HashDownloadPipeline

HashDownloadPipeline es una extensión abstracta de DownloadPipeline diseñada para manejar descargas usando adaptadores de almacenamiento basados en hash (HashStorageAdapter). Orquesta el proceso de escanear directorios, computar deltas con DeltaService, descargar chunks faltantes, y reconstruir archivos.

Esta pipeline es comúnmente usada para descargas desde sistemas de almacenamiento donde los chunks se identifican por hash.


Constructor

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

Métodos

MétodoDevuelveDescripción
execute(localDir, strategy, remoteIndex?, options?)Promise<void>Realiza un proceso completo de descarga para un directorio.
downloadAllMissingChunks(plan, 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, strategy, remoteIndex?, options?)

Realiza un proceso completo de descarga para un directorio.

Parámetros

NombreTipoDescripción
localDirstringDirectorio donde se descargará la nueva actualización.
strategyUpdateStrategyEstrategia a usar para la descarga y reconstrucción. Mira UpdateStrategy
remoteIndexRDIndexrd-index remoto opcional. Si no se proporciona ninguno, intentará descargarlo del almacenamiento.
optionsDownloadOptionsOpciones para el proceso de descarga. Mira DownloadOptions

Devuelve

Promise<void>


downloadAllMissingChunks(plan, 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
planDeltaPlanEl DeltaPlan generado por delta.compare de los dos rd-index.json para la descarga.
target'memory' | 'disk'Objetivo del ChunkSource resultante.
optionsDownloadOptionsOpciones para el proceso de descarga. Mira DownloadOptions

Devuelve

Promise<ChunkSource>


Relacionado