ローカル ファイル システム (/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);
})