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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント