Atualmente estou usando um plugin node.js chamado s3-upload-stream para transmitir arquivos muito grandes para o Amazon S3. Ele usa a API multipartes e na maior parte funciona muito bem.
No entanto, este módulo está mostrando sua idade e eu já tive que fazer modificações nele (o autor também o tornou obsoleto). Hoje me deparei com outro problema com a Amazon e realmente gostaria de seguir a recomendação do autor e começar a usar o aws-sdk oficial para realizar meus uploads.
MAS.
O SDK oficial não parece suportar piping para s3.upload()
. A natureza de s3.upload é que você deve passar o fluxo legível como um argumento para o construtor S3.
Tenho cerca de 120 módulos de código de usuário que fazem vários processamentos de arquivos e são independentes do destino final de sua saída. O mecanismo fornece a eles um fluxo de saída gravável canalizável e eles canalizam para ele. Não posso entregar a eles um AWS.S3
objeto e pedir que o chamem upload()
sem adicionar código a todos os módulos. A razão pela qual usei s3-upload-stream
foi porque ele suportava tubulação.
Existe uma maneira de fazer do aws-sdk s3.upload()
algo para o qual eu possa canalizar o stream?