Asset Batch Download

action_asset_batch_download · action · Utility · Disponibile · v1.0.0

Descrizione

Scarica in parallelo array di URL binari (immagini, PDF, video, CSS, JS) e salva su disco preservando il path-tree del sito. Companion di action_recursive_spider per fare un mirror offline. Features: SHA-256 dedup + resume (skip se file esiste con stesso hash), atomic write tmp+rename (no file mezzi-scritti), worker pool bounded, rate-limit per-host, hard cap bytes totali + per-asset (default 1 GiB / 50 MiB), path traversal-safe (rifiuta "..", null bytes, escapes basePath). Output `assetMap` (url→savePath) consumabile direttamente da action_html_mirror_rewrite per riscrivere i link nel HTML offline. Use case: (1) mirror immagini/PDF di un proprio catalogo prodotti, (2) backup di un proprio sito statico, (3) ingest asset per CDN privato, (4) snapshot legale di una pagina (con audit). Safety: SSRF guard, basePath obbligatoriamente assoluto, traversal-safe, hard caps anti-runaway.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
items
URL da scaricare
stringsi
https://x.com/img/a.png https://x.com/img/b.jpg — OR — JSON [{"url":"...","savePath":"img/a.png"}]
Uno per riga o virgola-separati. In alternativa JSON array di {url, savePath?}. savePath è relativo a basePath; se omesso, derivato da URL.pathname.
basePath
Directory base (assoluta)
stringsi
/opt/zeliai/shared/mirror/zelistore.it
Directory dove salvare. DEVE essere assoluta. Verrà creata se non esiste. Tutti i file finiscono dentro questa cartella (traversal-safe).
concurrency
Concorrenza download
numberno4Numero di download paralleli. Default 4. Max 16. Più alto = più veloce ma più aggressivo sul server.
perHostMinDelayMs
Delay minimo per host (ms)
numberno100Pausa minima tra request allo stesso host. Asset = file statici servibili da CDN, default 100ms basso.
timeoutMs
Timeout per asset (ms)
numberno30000Timeout sulla singola download. Default 30s. Aumenta per video grandi.
maxAssets
Max asset per run
numberno1000Hard cap sul numero di asset scaricati. Default 1000, max 50000.
maxTotalBytes
Max bytes totali
numberno1073741824Hard cap sui bytes totali scaricati nella run. Default 1 GiB. Quando raggiunto, gli asset rimanenti vengono marcati "skipped-cap".
maxPerAssetBytes
Max bytes per asset
numberno52428800Hard cap sulla singola download. Default 50 MiB. Asset più grandi vengono marcati "skipped-cap".
resumeOnSha256Match
Resume su SHA256 esistente
booleannotrueSe ON e il file esiste già su disco, calcola SHA-256 locale e skippa la fetch (risparmia banda). Spegnere per forzare re-download.
referer
Referer (esplicito)
stringno
https://x.com/
Header Referer da inviare. Alcuni CDN bloccano hotlink senza Referer corretto.
userAgent
User-Agent
stringnoFlowForge-AssetFetch/1.0User-Agent dichiarato. Default RFC-compliant.

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-action_asset_batch_download-1",
  "defId": "action_asset_batch_download",
  "label": "Asset Batch Download",
  "config": {
    "items": "https://x.com/img/a.png\nhttps://x.com/img/b.jpg\n— OR — JSON [{\"url\":\"...\",\"savePath\":\"img/a.png\"}]",
    "basePath": "/opt/zeliai/shared/mirror/zelistore.it",
    "concurrency": 4,
    "perHostMinDelayMs": 100,
    "timeoutMs": 30000,
    "maxAssets": 1000,
    "maxTotalBytes": 1073741824,
    "maxPerAssetBytes": 52428800,
    "resumeOnSha256Match": true,
    "userAgent": "FlowForge-AssetFetch/1.0"
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Asset Batch Download?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi