J'utilise actuellement un plugin node.js appelé s3-upload-stream pour diffuser de très gros fichiers sur Amazon S3. Il utilise l'API en plusieurs parties et pour la plupart, cela fonctionne très bien.
Cependant, ce module montre son âge et j'ai déjà dû y apporter des modifications (l'auteur l'a également déconseillé). Aujourd'hui, j'ai rencontré un autre problème avec Amazon, et j'aimerais vraiment suivre la recommandation de l'auteur et commencer à utiliser le aws-sdk officiel pour effectuer mes téléchargements.
MAIS.
Le SDK officiel ne semble pas prendre en charge le piping to s3.upload()
. La nature de s3.upload est que vous devez transmettre le flux lisible comme argument au constructeur S3.
J'ai environ 120 modules de code utilisateur qui effectuent divers traitements de fichiers, et ils sont indépendants de la destination finale de leur sortie. Le moteur leur remet un flux de sortie inscriptible canalisable, et ils y canalisent. Je ne peux pas AWS.S3
leur donner un objet et leur demander de l'appeler upload()
sans ajouter de code à tous les modules. La raison pour laquelle j'ai utilisé s3-upload-stream
était parce qu'il supportait la tuyauterie.
Existe-t-il un moyen de faire de aws-sdk s3.upload()
quelque chose vers lequel je peux diriger le flux?