Obecnie korzystam z wtyczki node.js o nazwie s3-upload-stream do przesyłania strumieniowego bardzo dużych plików do Amazon S3. Korzysta z wieloczęściowego API iw większości działa bardzo dobrze.
Jednak ten moduł pokazuje swój wiek i musiałem już wprowadzić do niego modyfikacje (autor również go wycofał). Dzisiaj natknąłem się na inny problem z Amazon i naprawdę chciałbym skorzystać z rekomendacji autora i zacząć używać oficjalnego aws-sdk do przesyłania plików.
ALE.
Wydaje się, że oficjalny pakiet SDK nie obsługuje przesyłania strumieniowego do s3.upload()
. Naturą s3.upload jest to, że musisz przekazać czytelny strumień jako argument do konstruktora S3.
Mam około 120+ modułów kodu użytkownika, które przetwarzają różne pliki i są agnostykami w stosunku do ostatecznego miejsca docelowego ich wyjścia. Silnik podaje im potokowalny, zapisywalny strumień wyjściowy, a oni przesyłają do niego potokiem. Nie mogę podać im AWS.S3
obiektu i poprosić o wywołanie upload()
go bez dodawania kodu do wszystkich modułów. Powodem, dla którego użyłem, s3-upload-stream
było to, że obsługuje on orurowanie.
Czy istnieje sposób na zrobienie s3.upload()
czegoś z aws-sdk, do którego mogę przesłać strumień?