AWS预签名URL是一种用于在Amazon Web Services (AWS) 上生成临时访问URL的机制。这些URL可以用于授权特定的用户或应用程序访问受限资源,例如S3对象存储桶中的文件。
生成预签名URL需要使用AWS SDK或AWS CLI,并提供以下信息:
除了上述参数外,还可以提供其他可选参数,如过期时间和自定义请求头。
以下是使用Python的boto3库生成S3预签名URL的示例代码:
import boto3
from botocore.client import Config
# 配置AWS凭证和区域
aws_access_key_id = 'YOUR_ACCESS_KEY'
aws_secret_access_key = 'YOUR_SECRET_ACCESS_KEY'
region_name = 'us-west-2'
# 创建S3客户端
s3 = boto3.client('s3',
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
config=Config(signature_version='s3v4'))
# 生成预签名URL
bucket_name = 'your-bucket-name'
object_key = 'your-object-key'
expiration_time = 3600 # URL的有效时间(以秒为单位)
url = s3.generate_presigned_url('get_object',
Params={'Bucket': bucket_name, 'Key': object_key},
ExpiresIn=expiration_time)
print(url)
以上代码将生成一个有效期为1小时的S3对象的预签名URL,并将其打印出来。可以根据需要调整过期时间和其他参数。