現時点で調べた結果。
・Download用のURLはAWS CLIで作成可能
例:aws s3 presign s3://xxxx.xxx/IMG_0865.PNG --expires-in 300
これで得られるURLにcurlやブラウザでアクセスするとexpires-inで指定した秒数だけ参照可能。
最大で7日間、大きいファイルなどでダウンロード中に有効期限をむかえても継続してダウンロード可能
・Upload用のURLはAWS CLIで作成不可能、SDKなどでコードを用意してURLを生成する必要がある
Lambdaで生成すると良いらしい
例:
====
Lambda.js
exports.handler = function (event, context, callback) {
"use strict";
const AWS = require('aws-sdk');
let s3 = new AWS.S3();
const BUCKET = '<backet name>';
const KEY = '<Object key>';
const CONTENT_TYPE = 'image/jpeg'; //<- 他にもimage/png, image/tiff, etc...
var params = {
Bucket: BUCKET,
Key: KEY,
Body: '',
ContentType: CONTENT_TYPE,
Expires: 300
};
s3.getSignedUrl('putObject', params, function (err, url) {
if (err) {
callback(err);
return;
}
callback(null, url);
});
};
====
これで生成されたURLにcurlでputすると良いとのこと。
一つ賢くなりました。
参考
https://qiita.com/hitomatagi/items/276146a214e68bbe88d0
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。