2016-12-25 1 views
0

Я хочу загрузить 20-гигабайтный файл на S3 и вычислить контрольную сумму sha256, используя криптографию api. В настоящее время я могу сделать это в двух обещаниях, соединенных вместе, используя два Readable Streams, но я бы хотел оптимизировать, чтобы использовать только один Readable Stream. Рассматривая метод AWS SDK implementation, метод fillStream использует метод ReadableStream.read. Но мне кажется, способ отправить куски данных двум потребителям - это привязать обработчик событий к событию «данные».Трубы для чтения для двух потребителей: AWS SDK и Crypto

В соответствии с ReadableStream существуют два режима, приостановлены и текут. Итак, что бы связать обработчик событий? Будет ли он пропускать куски данных в моих чтениях или чтениях AWS SDK? Будет ли он дважды считывать одни и те же данные с диска?

Существуют ли другие способы использования криптоапи и пакета aws-ask для оптимизации доступа к диску?

+0

ли [мой ответ] (https://stackoverflow.com/questions/41325183/piping-readablestream-to-two-consumer-aws-sdk-and-crypto/41325341 # 41325341) ниже поможет вам? Любые комментарии? – rsp

ответ

0

Вы можете либо попытаться подключить один читаемый поток к двум записываемым потокам одновременно, либо написать собственный код, который прослушивает события данных и записывает их в два потока.

Есть также некоторые модули по НПМ, чтобы сделать один поток разделить на две части:

+0

Извините, я отказался от требования рассчитать контрольную сумму, а не потому, что перекачка потока в два источника была сложной, а потому, что требования изменились. –

Смежные вопросы