В настоящее время я использую плагин 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()
чем - то, на что я могу направить поток?