我的节点 js 代码从我的服务器 tmp.png 打开一个本地 png 文件,然后尝试将其保存为 amazon S3。我一直遇到问题,我怀疑它与编码有关。它工作的唯一方法是使用 base64 编码(我不想要我的照片)。
fs = require('fs');
var awssum = require('awssum');
var amazon = awssum.load('amazon/amazon');
var s3Service = awssum.load('amazon/s3');
var s3 = new s3Service('mykey', 'mysecret', 'account', amazon.US_WEST_1);
fs.readFile('./tmp.png', function (err, data){
if(err){
console.log("There was an error opening the file");
} else {
s3.PutObject({
BucketName : 'my-bucket',
ObjectName : 'tmp.png',
ContentType : 'image/png',
ContentLength : data.length,
Body : data,
}, function(err, data) {
if(err){
console.log("There was an error writing the data to S3:");
console.log(err);
} else {
console.log("Your data has been written to S3:");
console.log(data);
}
});
}
});
显然 my-bucket 实际上是我唯一的存储桶名称。我从亚马逊收到的消息是请求超时:
在超时期限内未读取或写入您与服务器的套接字连接。空闲连接将被关闭。