1

我正在尝试将文件从我的本地文件系统 (/local/dir/file.png) 上传到我的 AmazonS3 存储桶 (bucket/dir/file.png)。我正在使用 node-webkit 和 aws2js。我的代码看起来像..

s3 = require('aws2js').load('s3', "AWS_KEY", "AWS_SECRET").setBucket("bucket");

var key  = '/dir/file.png'
var path = '/local/dir/file.png'

s3.putFile(key, path, "public-read", {}, function (err,data) {
    if(err) console.log(err);
    console.log(data);
});

以下错误不断传递给回调并且文件未上传..

Error { code: "EACCES", errno: "EACCES", syscall: "spawn" }

我已经阅读了一些内容。据我所知,这是一个权限问题。我的问题是我需要更改哪些权限才能解决错误?

更新 :

我刚刚尝试使用较低的函数调用 put 上传一个字符串,它上传了对象..这向我表明它不是 S3。

s3.put(key, {}, "somestringcontent", function (err,data) {
    if(err) console.error(err);
    console.log(data);
})

然后我尝试了以下..这也有效。

var file = fs.readFileSync(path);
s3.put(key, {}, file, function (err,data) {
    if(err) console.error(err);
    console.log(data);
})

但是当我尝试以下..它失败了!

s3.put(key, {}, {file:path}, function (err,data) {
    if(err) console.error(err);
    console.log(data);
})
4

1 回答 1

0

您好,您需要授予文件夹权限才能放置文件。请尝试“chmod -R g+w /local/dir/”?

于 2013-07-03T04:49:35.440 回答