在我的node.js应用程序中,我正在上传一个文件(保存到本地文件系统 - >/tmp /),从中创建一个Stream of,将该文件存储到我的S3bucket使用aws2js (Amazon CLI bindings)。这个问题开始于尝试在使用putStream(...)之前将文件初始保存到S3,然后再进行其他操作。 (使用´putFile(filepath)´的作品!)无法保存使用aws2js将流读取到亚马逊S3
我的Bucket中的条目已创建,并且没有给出回调错误。但是没有文件内容被保存,Entry有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)
是因为我会进一步操纵文件。通过使用流,我以后可以重用,以便不是每个模块都必须重新读取整个文件(也许它甚至不可能重新使用流,但那不是问题(但)...)
I我对任何方向的任何一方都很有帮助,因为我无法弄清楚为什么这不能在4天的尝试中发挥作用&失败。谢谢!