Pre-Signed URL (시간제한 URL 만들기)

Tags
Pre-signed URL
 
요약 : 일시적 퍼블릭 URL 생성
 
모든 객체는 기본적으로 비공개이며, 객체 소유자만 이러한 객체에 액세스할 수 있습니다.
그러나 객체 소유자는 필요할 경우 자신의 보안 자격 증명을 사용하여 일정 기간 동안 객체 다운로드를 허가하는 미리 서명된 URL을 만들어 다른 사용자와 객체를 공유할 수 있습니다.
미리 서명된 URL을 받은 사용자는 누구나 객체에 액세스할 수 있습니다.
 

Pre-signed URL 생성 방법

getSignedUrl(operation, params, callback) ⇒ String
Pre-signing a getObject operation (synchronously)
var params = {Bucket: 'bucket', Key: 'key'}; var url = s3.getSignedUrl('getObject', params); console.log('The URL is', url);
Pre-signing a putObject (asynchronously)
var params = {Bucket: 'bucket', Key: 'key'}; s3.getSignedUrl('putObject', params, function (err, url) { console.log('The URL is', url); });
Pre-signing a putObject operation with a specific payload
var params = {Bucket: 'bucket', Key: 'key', Body: 'body'}; var url = s3.getSignedUrl('putObject', params); console.log('The URL is', url);
Passing in a 1-minute expiry time for a pre-signed URL
var params = {Bucket: 'bucket', Key: 'key', Expires: 60}; var url = s3.getSignedUrl('getObject', params); console.log('The URL is', url); // expires in 60 seconds
 
getSignedUrlPromise() ⇒ Promise
Pre-signing a getObject operation
var params = {Bucket: 'bucket', Key: 'key'}; var promise = s3.getSignedUrlPromise('getObject', params); promise.then(function(url) { console.log('The URL is', url); }, function(err) { ... });
Pre-signing a putObject operation with a specific payload
var params = {Bucket: 'bucket', Key: 'key', Body: 'body'}; var promise = s3.getSignedUrlPromise('putObject', params); promise.then(function(url) { console.log('The URL is', url); }, function(err) { ... });
Passing in a 1-minute expiry time for a pre-signed URL
var params = {Bucket: 'bucket', Key: 'key', Expires: 60}; var promise = s3.getSignedUrlPromise('getObject', params); promise.then(function(url) { console.log('The URL is', url); }, function(err) { ... });