В моем приложении node.js я загружаю файл (который сохраняется в локальной файловой системе -> / tmp /), из которого я создаю поток, для сохранения этого файла в моем S3bucket с помощью aws2js (Amazon Привязки CLI) . Проблема начинается с попытки сначала сохранить файл на S3 с помощью putStream (...) , прежде чем я сделаю какие-либо дальнейшие манипуляции. (использование ´putFile (filepath) ´ работает!)
Запись в моем Bucket создана, и при обратном вызове не выдается никакой ошибки. Но содержимое файла не было сохранено, и запись имеет 0 байтов.
После, мой код;
....
var fileStream=fs.createReadStream(file.path),
savePath = _makeSavePath( file.name );
s3.putStream(savePath, fileStream, 'public-read', {'content-type': file.type.mime, 'content-length':file.length}, function (err, s3File) {
if (err){
console.error(err);
fileGetCB(err);
return;
}
console.log("SAVED TO S3 '"+savePath+"'!!");
//do further manipulations with fileStream
});
...
Я могу заверить, что file
инициализирован и что файл в file.path существует.
Причина, по которой я использую поток, а не S3.putFile(path)
, заключается в том, что я буду дополнительно манипулировать файлом. Используя поток, я позже мог бы использовать его повторно, так что не каждый модуль должен перечитывать весь файл (возможно, даже «повторно использовать» поток не возможно, но это не проблема (пока) ..)
Я очень полезен для любой руки в любом направлении, так как я не могу понять, почему это не работает в течение 4 дней попытки и неудачи. Спасибо!