我正在寻找使用boto3和sse加密生成预签名url的示例。
这是到目前为止我的代码
s3_client = boto3.client('s3',
region_name='ap-south-1',
endpoint_url='http://s3.ap-south-1.amazonaws.com',
config=boto3.session.Config(signature_version='s3v4'),
)
try:
response = s3_client.generate_presigned_url('put_object',
Params={'Bucket': bucket_name,
'Key': object_name},
ExpiresIn=expiration)
except ClientError as e:
logging.error("In client error exception code")
logging.error(e)
return None我很难找到正确的参数来使用SSE加密。我可以使用PUT调用上传文件。我还想知道客户端要使用的头来坚持sse加密。
发布于 2022-04-18 15:36:00
import boto3
access_key = "..."
secret_key = "..."
bucket = "..."
s3 = boto3.client('s3',
aws_access_key_id=access_key,
aws_secret_access_key=secret_key)
return(s3.generate_presigned_url(
ClientMethod='get_object',
Params={
'Bucket': bucket,
'Key': filename,
'SSECustomerAlgorithm': 'AES256',
}
))还添加标题:-
'x-amz-server-side-encryption': 'AES256' 在前端代码中调用预先签名的url。
发布于 2019-12-25 05:51:27
您可以将条件添加到必须满足的预签名URL中,这样上传才能有效。这可能包括x-amz-server-side-encryption。
或者,您可以添加拒绝任何未加密请求的桶策略。
请参阅:如何防止未加密对象上载到
https://stackoverflow.com/questions/59474712
复制相似问题