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 に答える