Attualmente sto utilizzando un plug -in node.js chiamato s3-upload-stream per eseguire lo streaming di file molto grandi su Amazon S3. Utilizza l'API multipart e per la maggior parte funziona molto bene.
Tuttavia, questo modulo mostra la sua età e ho già dovuto modificarlo (anche l'autore lo ha deprecato). Oggi mi sono imbattuto in un altro problema con Amazon e vorrei davvero prendere il consiglio dell'autore e iniziare a utilizzare aws-sdk ufficiale per completare i miei caricamenti.
MA.
L'SDK ufficiale non sembra supportare il piping s3.upload()
. La natura di s3.upload è che devi passare il flusso leggibile come argomento al costruttore S3.
Ho circa 120+ moduli di codice utente che eseguono varie elaborazioni di file e sono agnostici rispetto alla destinazione finale del loro output. Il motore trasmette loro un flusso di output scrivibile tramite pipe e loro si collegano ad esso. Non posso dare loro un AWS.S3
oggetto e chiedere loro di chiamarlo upload()
senza aggiungere codice a tutti i moduli. Il motivo per cui l'ho usato s3-upload-stream
era perché supportava le tubazioni.
C'è un modo per rendere aws-sdk s3.upload()
qualcosa a cui posso collegare lo stream?