Amazon S3バケットからNode.jsホストアプリケーションからファイルをダウンロードしようとしています。Node.jsを使用してEC2インスタンスからAWS S3ファイルをダウンロード
var folderpath= process.env.HOME || process.env.USERPROFILE // tried using os.homedir() also
var filename = 'ABC.jpg';
var filepath = 'ABC';
AWS.config.update({
accessKeyId: "XXX",
secretAccessKey: "XXX",
region: 'ap-southeast-1'
});
var DOWNLOAD_DIR = path.join(folderpath, 'Downloads/');
var s3 = new AWS.S3();
var s3Params = {Bucket: filepath,Key: filename, };
var file = require('fs').createWriteStream(DOWNLOAD_DIR+ filename);
s3.getObject(s3Params).createReadStream().pipe(file);
このコードは、ローカルホスト上で正常に動作しますが、インスタンス上のリターンをFOLDERPATHため、インスタンスから動作しません。つまり、何かC」などの代わりに、ユーザマシンのダウンロードフォルダのパスの「/ホーム/ EC2-ユーザー」:\ Users \ユーザー名"。
どうすればユーザーのマシンにファイルをダウンロードできますか?どのようにec2インスタンスからユーザーのホームディレクトリのパスを取得するには?
ありがとうございます。
サイドノートとして、あなたのsecretAccessKeyをコード内に保存することは悪い考えです。 IAMロールを作成し、EC2インスタンスに割り当てる必要があります。 –
よろしくお願いいたします。ありがとうございました@Sergey Kovalev –
「うまくいかない」とはどういう意味ですか?間違いはありますか? 'folderpath'はLinuxマシン上の通常のディレクトリパスです(' ec2-user'のホームディレクトリです)。 '/ home/ec2-user/Downloads /'ディレクトリが存在し、そのユーザに書き込み権限があることを確認しましたか? – GilZ