2

更新:そのユーザーにフルアクセスポリシーのアクセス許可を追加した後、コマンドラインから機能するようになりました。Nodeでそれを行うと、エラーはありませんが、s3ファイルマネージャーにファイルが表示されません。

Amazon の S3 サービスを使用すると EPIPE エラーが発生し続けます。

私は少し立ち往生しており、どのように進めればよいかわかりません。

Knox モジュールで 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);
    });
}
4

1 に答える 1

1

さて、これらは私がこの問題を解決するために取ったステップです:

  1. インストールされているawsコマンドラインツールはここにあります:http ://www.timkay.com/aws/
  2. 作成したs3ユーザーにフルアクセス(管理者アクセス)ポリシーを追加しました。
  3. 次のコマンドを使用して、そのバケットに書き込めることを確認しましたaws put /file/to/put /new-file
  4. 削除{'x-amz-acl': 'public' }すると'public-read'、ファイルがs3に追加されません(エラーなし)。それも機能することに注意してください{'x-amz-acl': 'private' }
于 2012-08-16T00:23:49.967 に答える