更新:在向该用户添加完整访问策略权限后,从commandline开始工作。现在,当我使用Node执行此操作时,没有错误,但我无法在s3文件管理器中看到这些文件。
我使用亚马逊的S3服务不断收到EPIPE错误。
我有点卡住,不确定如何继续。
我正在使用带有Knox module的Node.js。
这是我的代码:
var client = knox.createClient({
key: amazonAccessKeyId,
secret: amazonSecretAccessKey,
bucket: amazonBucketName
});
function moveFiles() {
moveUploadedFile(req.files['aps-file'].path,'/aps-products.csv', this.parallel());
moveUploadedFile(req.files['perry-craft-roof-file'].path,'/perry-craft-roof-products.csv', this.parallel());
res.end('successful!');
}
function moveUploadedFile(srcPath, dstPath, callback) {
client.putFile(srcPath, dstPath, { 'x-amz-acl': 'public' }, function (err) {
if (err) {
callback(new Error("Error uploading file for " + dstPath + ": " + err.message), srcPath);
console.log(err);
return;
}
console.log('Finished writing file ' + dstPath + ' to Amazon S3 Cloud');
callback(null, srcPath);
});
}
答案 0 :(得分:1)
好的,这些是我为解决这个问题而采取的步骤:
aws put /file/to/put /new-file
。{'x-amz-acl': 'public' }
它应该是'public-read'
,否则它不会将文件添加到s3(没有错误)。请注意,{'x-amz-acl': 'private' }
也可以。