在 AWS S3 上,如果您同时使用 Authorization 和 X-Amz-Expires 请求头,则 X-Amz-Expires 将被忽略。要使用 X-Amz-Expires,请确保不使用 Authorization 请求头,并在 URL 中包含所需的其他验证信息。
示例代码如下:
import boto3
from botocore.client import Config
# 客户端配置
config = Config(signature_version='s3v4')
# 创建 S3 客户端
s3 = boto3.client('s3', config=config)
# 指定参数
bucket_name = 'my-bucket'
object_name = 'my-object'
expires_in = 3600 # 1 小时
# 生成 URL
presigned_url = s3.generate_presigned_url(
ClientMethod='get_object',
Params={
'Bucket': bucket_name,
'Key': object_name
},
ExpiresIn=expires_in
)
# 输出 URL
print(presigned_url)