我已将 Django 设置为使用 django-storages 从 S3 存储桶提供静态文件。
不幸的是,静态文件的网址如下所示:
https://[bucket name].s3.amazonaws.com/profile_pics/[filename]?AWSAccessKeyId=[...]&Signature=[...]&Expires=[...]
有没有办法对网址进行编码以避免泄露 AWS 访问密钥和签名?
我已将 Django 设置为使用 django-storages 从 S3 存储桶提供静态文件。
不幸的是,静态文件的网址如下所示:
https://[bucket name].s3.amazonaws.com/profile_pics/[filename]?AWSAccessKeyId=[...]&Signature=[...]&Expires=[...]
有没有办法对网址进行编码以避免泄露 AWS 访问密钥和签名?
最终我发现要从 url 中隐藏访问密钥和签名就足够了
AWS_QUERYSTRING_AUTH = False
在 settings.py 中并将 S3 存储桶设置为公共。
当您尝试在 S3 上为您的客户共享私有资源时,这就是 S3 的工作方式。使用访问密钥 ID 和签名,您的客户可以使用它在短时间内访问您的资源,然后它就会过期。
在此处查看Signed URL 文档以了解其工作原理。
希望有帮助!