[Cloudian #10] Python(boto3)에서 객체 게시를 위한 서명된 URL을 생성해 보기
6744 단어 파이썬boto3CloudianObjectStorageS3
소개
Cloudian 은 AWS의 S3 완전 호환 API가 있는 객체 스토리지입니다.
지난번 은 Python(boto3)에서 개체의 메타데이터를 표시해 보았습니다.
이번에는 Python(boto3)에서 객체를 WEB 공개하기 위한 서명된 URL을 생성해 보겠습니다.
사전 서명 된 URL 생성 / generate_presigned_url ()
Cloudian에 저장된 객체를 공유하는 데 사용할 수 있는 공개 URL은 generate_presigned_url()을 호출하여 생성할 수 있습니다.
1. 기본 유효 기간(3,600초)으로 사전 서명된 URL 생성
다음 예제에서는 generate_presigned_url()의 클라이언트 메소드에 "get_object"를 설정하고 버킷 "pythonbucket3"에 저장된 키 "HyperStoreInstallGuide_v-7.2.1.pdf"의 객체를 검색 할 수있는 사전 서명 된 URL을 생성합니다. 있습니다.
유효 기간을 지정하지 않고 URL을 생성하면 해당 URL의 유효 기간은 기본적으로 3,600초(1시간)로 설정됩니다.
test1.py
import boto3
client = boto3.client(
's3',
endpoint_url='https://xxx.yyy.com'
)
# オブジェクトWEB公開のための署名付きURLを生成
client.generate_presigned_url(
'get_object',
Params={
'Bucket': 'pythonbucket3',
'Key': 'HyperStoreInstallGuide_v-7.2.1.pdf'
}
)
'http://s3-region1.admin-tech.tokyo/pythonbucket3/HyperStoreInstallGuide_v-7.2.1.pdf?
AWSAccessKeyId=xxxxxxxxxxxxxxxxxxxx&Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&Expires=xxxxxxxxxx'
이 예에서 생성된 URL을 열면 아래 그림과 같이 지정된 객체를 검색할 수 있습니다.
(브라우저에서 볼 수있는 PDF이므로 브라우저에서 열려 있습니다)
2. 만료 날짜를 2일(7,200초)로 설정하여 사전 서명된 URL을 생성합니다.
다음 예제에서는 generate_presigned_url() 인수에 이틀 만료일(ExpiresIn=7200)을 설정하여 사전 서명된 URL을 생성합니다.
test1.py
import boto3
client = boto3.client(
's3',
endpoint_url='https://xxx.yyy.com'
)
# オブジェクトWEB公開のための署名付きURLを生成
client.generate_presigned_url(
'get_object',
Params={
'Bucket': 'pythonbucket3',
'Key': 'HyperStoreInstallGuide_v-7.2.1.pdf',
},
ExpiresIn=7200
)
'http://s3-region1.admin-tech.tokyo/pythonbucket3/HyperStoreInstallGuide_v-7.2.1.pdf?
AWSAccessKeyId=xxxxxxxxxxxxxxxxxxxx&Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&Expires=xxxxxxxxxx'
3. 만료 날짜를 2분(120초)으로 설정하여 사전 서명된 URL 생성
다음 예제에서는 generate_presigned_url() 인수에 매우 짧은 시간 만료(이 예에서는 "ExpiresIn=120")를 설정하고 사전 서명된 URL을 생성하여 해당 동작을 확인합니다.
만료 2분의 사전 서명된 URL 생성
test1.py
import boto3
client = boto3.client(
's3',
endpoint_url='https://xxx.yyy.com'
)
# オブジェクトWEB公開のための署名付きURLを生成
client.generate_presigned_url(
'get_object',
Params={
'Bucket': 'pythonbucket3',
'Key': 'HyperStoreInstallGuide_v-7.2.1.pdf',
},
ExpiresIn=120
)
'http://s3-region1.admin-tech.tokyo/pythonbucket3/HyperStoreInstallGuide_v-7.2.1.pdf?AWSAccessKeyId=xxxxxxxxxxxxxxxxxxxx&Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&Expires=xxxxxxxxxx'
생성된 URL에 2분 이내에 액세스
사전 서명된 URL이 가리키는 개체가 웹 브라우저에서 참조할 수 있는 PDF 형식이므로 웹 브라우저에서 PDF가 열립니다.
생성된 URL에 2분 이상 경과한 후 액세스
다음과 같은 오류가 반환되어 개체에 대한 액세스가 거부됩니다. 사전 서명 된 URL을 생성 할 때 "ExpiresIn = 120"을 지정했기 때문에 2 분 이상 경과 한 액세스는 다음과 같이 거부됩니다.
요약
Python(boto3)에서 객체 WEB 게시를 위한 서명된 URL을 생성해 보았습니다.
다음 번에도 파이썬에서 객체 스토리지/Cloudian을 여러 가지로 조작하고 싶습니다.
Reference
이 문제에 관하여([Cloudian #10] Python(boto3)에서 객체 게시를 위한 서명된 URL을 생성해 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamahiro/items/804dd2c89316ef7b8d57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)