В настоящее время я использую плагин node.js, называемый s3-upload-stream, чтобы передавать очень большие файлы на Amazon S3. Он использует многопроцессорный API и по большей части работает очень хорошо.
Однако этот модуль показывает свой возраст, и я уже должен был внести в него изменения (автор тоже его устарел). Сегодня я столкнулся с другим вопросом с Amazon, и мне бы очень хотелось взять рекомендацию автора и начать использовать официальный aws-sdk для выполнения моих загрузок.
НО.
Официальный SDK, похоже, не поддерживает трубопроводы до s3.upload()
. Природа s3.upload заключается в том, что вы должны передать читаемый поток в качестве аргумента конструктору S3.
У меня есть примерно 120 модулей пользовательского кода, которые выполняют различные обработки файлов, и они не зависят от конечного пункта назначения их вывода. Двигатель передает им доступный для записи выходной поток, и они подключаются к нему. Я не могу передать им объект AWS.S3
и попросить их называть upload()
на нем без добавления кода ко всем модулям. Причина, по которой я использовал s3-upload-stream
, состояла в том, что она поддерживала трубопровод.
Есть ли способ сделать aws-sdk s3.upload()
что-то, что я могу передать потоку?