Я пытаюсь зашифровать и загрузить файл с помощью запроса PUT, когда я передаю readStream в функцию шифрования (crypto.createCipheriv), а затем в запрос, файл загружается только частично (первые 200 байтов)
Если это поможет - я загружаю в корзину S3, используя подписанный URL.
Файл полностью загружается, когда я пропускаю этап шифрования (нет readStream.pipe(cipher)
)
const fs = require('fs');
const crypto = require('crypto');
const request = require('request');
const FormData = require('form-data');
const key = Buffer.alloc(32);
const iv = Buffer.alloc(16);
const url = 'https://some-url-here.com';
const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
const readStream = fs.createReadStream('testfile.txt');
readStream.setEncoding('utf8');
cipher.setEncoding('utf8');
readStream.pipe(cipher)
cipher.on('data', (chunk) => {
console.log(chunk);
});
const formData = {
'file.jpg': cipher
}
request({
method: 'PUT',
url,
formData: formData
});
В конечном счете, я хотел бы зашифровать, а затем загрузить очень большой файл, не считывая весь файл в память (используя поток)