AWS S3の期限付きURLを作成し、S3にあるファイルをダウンロードする
AWS S3のファイルを期限付きURLというURLにttlを持たせて、そのURLが有効な時間にアクセスすると指定されたファイルをダウンロードすることができる、というとても素晴らしい機能です。
以下、バケットにあるzipファイルの期限付きURLを作成し、SNSのトピック、サブスクリプションで指定したメールアドレスに送信します。
const aws = require('aws-sdk');
exports.handler = function(event, context){
const s3 = new aws.S3();
const params = {Bucket: 'sig-v4', Key: 'SSL.zip', Expires: 60};
const url = s3.getSignedUrl('getObject', params);
const sns = new aws.SNS();
sns.publish(
{
TopicArn: 'arn:aws:sns:us-xxxxx:xxxxxxxxxxxx:test',
Message: url,
Subject: 'タイトル'
}, function (err, data) {
if (!err) {
context.done(null,'');
}else{
context.fail();
}
});
};
これで指定したメールに送信され、URLをクリックすると、上記で言うSSL.zipというファイルがダウンロードされます。
有効期限の単位は「秒」なので、このサンプルでは60秒です。
60秒を超えてURLにアクセスすると以下の画面になります。
「AWS SNSは管理者や運用者宛のPUB/SUBだと思います」

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^



コメント