要向AWS S3签名URL添加参数,可以使用以下代码示例:
import boto3
from botocore.client import Config
# 创建S3客户端
s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
# 生成需要签名的URL
bucket_name = 'your-bucket-name'
object_key = 'your-object-key'
params = {'param1': 'value1', 'param2': 'value2'} # 要添加的参数
url = s3.generate_presigned_url(
ClientMethod='get_object',
Params={'Bucket': bucket_name, 'Key': object_key, 'ResponseContentDisposition': 'attachment'},
ExpiresIn=3600, # URL的有效期,单位为秒
HttpMethod='GET',
ExtraParams=params # 添加额外的参数
)
print(url) # 打印签名URL
在上述代码中,首先创建了一个S3客户端,然后使用generate_presigned_url方法生成签名URL。在Params参数中指定了要操作的对象的Bucket和Key,并添加了ResponseContentDisposition参数来指定下载文件时的文件名(可选)。
在ExtraParams参数中,可以添加自定义的参数。在上述示例中,param1和param2是自定义的参数名和值。
注意,signature_version参数被设置为s3v4,以确保URL使用S3 v4签名算法。这是AWS推荐的签名算法。
通过运行上述代码,将生成一个带有参数的签名URL,并将其打印出来。