我一直在尝试使用AWS NodeJS sdk将gzip压缩日志文件上传到S3,偶尔会发现S3中上传的文件已损坏/被截断。当我在bash终端下载文件并使用gunzip解压缩时,我得到:
01-log_2014-09-22.tsv.gz:意外的文件结束。
当我比较文件大小时,下载的文件只会略微缩小原始文件大小(解压缩很好)。
这并不是一直发生的......每三个文件中就有一个被截断。重新上传可以解决问题。通过S3 Web UI上传也可以正常工作。
这是我使用的代码......
var stream = fs.createReadStream(localFilePath);
this.s3 = new AWS.S3();
this.s3.putObject({
Bucket: bucketName,
Key: folderName + filename,
ACL: "bucket-owner-full-control",
Body: stream,
},function(err) {
// stream.close();
callback(err);
});
我不必关闭流,因为它默认为自动关闭,但问题似乎都发生了。
它的断断续续表明它是某种时机或缓冲问题,但我无法找到任何可能影响它的控件。有什么建议吗?
感谢。