Amazon Presigned URL是Amazon S3服务提供的一种机制,可以生成带有授权访问的URL,用户可以在指定的时间范围内进行访问。下面提供Python代码示例,演示如何使用Amazon Presigned URL:
import boto3
from botocore.exceptions import ClientError
def create_presigned_url(bucket_name, object_name, expiration=3600):
"""生成带有授权访问的URL"""
s3_client = boto3.client('s3')
try:
response = s3_client.generate_presigned_url('get_object',
Params={'Bucket': bucket_name,
'Key': object_name},
ExpiresIn=expiration)
except ClientError as e:
logging.error(e)
return None
return response
代码中使用了Boto3库,该库提供了一组接口,可以与Amazon Web Services(AWS)进行交互。方法create_presigned_url接收3个参数:bucket_name表示要访问的存储桶名称,object_name表示要访问的文件/对象名称,expiration表示URL有效期(默认为1小时)。
接下来,使用返回的URL访问对象时,需要进行授权处理:
import urllib.request
# 访问指定URL
url = create_presigned_url('my-bucket', 'my-object')
response = urllib.request.urlopen(url)
# 显示响应内容
print(response.read())
在以上示例中,使用urllib库打开presigned URL,以获取存储桶中指定文件的响应内容。如果需要,也可以将其下载到硬盘上。
注意:为了使用Amazon S3服务,需要安装必要的Python库,以及正确的AWS凭证。有关详情,请参阅Amazon S3文档。