你好,我正在使用Django应用程序,并将我的媒体文件保存在AWS S3存储桶中,并在我的应用程序中显示,这很好,但我需要生成一个图像URL来放入我使用Django boto3的邮箱中
获取URL的代码如下:
import boto3
from decouple import config
AWS_ACCESS_KEY_ID = config("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = config("AWS_SECRET_ACCESS_KEY")
AWS_STORAGE_BUCKET_NAME = 'wiini'
AWS_S3_REGION_NAME = 'ca-central-1'
AWS_S3_SIGNATURE_NAME = 's3v4'
AWS_S3_FILE_OVERWRITE = False
def get_s3_favicon_url():
s3_client = boto3.client(
's3',
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
region_name=AWS_S3_REGION_NAME,
config=boto3.session.Config(signature_version=AWS_S3_SIGNATURE_NAME)
)
favicon_key = 'favicon-32x32.png'
url = s3_client.generate_presigned_url(
'get_object',
Params={'Bucket': AWS_STORAGE_BUCKET_NAME, 'Key': favicon_key},
ExpiresIn=3600, # Set an appropriate expiration time in seconds
HttpMethod='GET', # Specify the HTTP method
)
print("Generated URL:", url)
return url
但当我点击生成的URL时,我会看到:
<Code>AuthorizationQueryParametersError</Code>
组件错误在此:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AuthorizationQueryParametersError</Code>
<Message>Query-string authentication version 4 requires the X-Amz-算法rithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.</Message>
<RequestId>MBZZHKZF2ZJEGNJ2</RequestId>
<HostId>1u9Jg6UQWPsdbmN2Qh88HYhsVNILR3CY58RzIMu3Be6FALR6D8qu+GnLEND/Mwee4Mkx0p7zoR8=</HostId>
</Error>
有人能帮我解决这个问题吗?