본문 바로가기
기타 프로그램

[PHP] pre-signed url, s3 객체 다운로드 url

by 고체물리학 2023. 12. 5.

aws sdk를 사용하여 pre-signed url 생성하는 방법

 

- 이전글 참고

2023.10.12 - [Kotlin] - pre-signed url 사용하기, 일정 기간 동안 객체 다운로드 url 생성

 

pre-signed url 사용하기, 일정 기간 동안 객체 다운로드 url 생성

https://docs.aws.amazon.com/AmazonS3/latest/userguide/example_s3_Scenario_PresignedUrl_section.html Create a presigned URL for Amazon S3 using an AWS SDK - Amazon Simple Storage Service This documentation is for an SDK in preview release. The SDK is subjec

eggwhite0.tistory.com

 

- AWS 문서

https://docs.aws.amazon.com/ko_kr/sdk-for-php/v3/developer-guide/s3-presigned-url.html

 

Amazon S3 사전 서명된 URL (AWS SDK for PHP버전 3 포함) - AWS SDK for PHP

이 메서드에 의해 반환되는 URL은 버킷 또는 키가 존재하는지 검증되지 않았으며, 이 메서드는 객체가 무단 액세스를 허용하는지 여부를 확인하지 않습니다.

docs.aws.amazon.com

 

 

위 문서를 참고하여 30분 동안 유효한 서명된 URL을 만들 수 있었다

 

try{
  $s3Client = new S3Client(array(
    'region' => 'ap-northeast-2',
    'version' => 'latest',
    'http'    => array('verify' => false),
    'credentials' => array('key' => 'BucketKey',
    'secret' => 'BucketSecretKey')
  ));

  //Creating a presigned URL
  $cmd = $s3Client->getCommand('GetObject', array(
    'Bucket' => 'my-bucket',
    'Key' => '파일이름'
  ));

  $request = $s3Client->createPresignedRequest($cmd, '+30 minutes');

  // Get the actual presigned-url
  $presignedUrl = (string)$request->getUri();
}catch (Exception $e){

}

 

 

 

반응형

댓글