python - 使用 boto3 更改“DEFAULT_FILE_STORAGE”导致高 TTFB(等待时间)
问题描述
我的设置
...
AWS_ACCESS_KEY_ID = 'MY_KEY'
AWS_SECRET_ACCESS_KEY = 'MY_SECRET_KEY'
AWS_STORAGE_BUCKET_NAME = 'wallpapers'
AWS_S3_ENDPOINT_URL = 'https://sgp1.digitaloceanspaces.com'
AWS_S3_CUSTOM_DOMAIN = 'wallpapers.sgp1.cdn.digitaloceanspaces.com'
AWS_QUERYSTRING_AUTH = False
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'static'
AWS_DEFAULT_ACL = 'public-read'
STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
MEDIA_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, 'media')
MEDIA_ROOT = 'media/'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
...
当我打开'http://127.0.0.1:8000/'
这会导致高 TTFB ......
但是当我在settings.py中注释掉/删除它时...
#DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
然后一切正常
解决方案
我意识到真正的问题是由模板标签引起的。
<p>{{ my_img.width }}</p>
因此,为了获得存储在 MySQL 中的图像的宽度,它正在下载图像的块,然后计算尺寸。为了克服这个问题,我在 model.py 中为图像高度和宽度添加了单独的字段。有效!!!我是 Django 的新手。这可能不是最好的方法。请让我知道以获得更好的解决方案。
推荐阅读
- r - 带有传单地图的闪亮互动图点击更改图表数据
- aspnetboilerplate - 如何处理 Abp vNext 中的 EntityNotFoundException?
- scala - KeyedProcessFunction 的 processFunction 中的上下文为空
- javascript - 添加未加载的苹果触摸图标
- python - 使用 ML 对纵向数据进行分类预测
- reactjs - React APP 在服务器启动时使用 BROWSER 和 BROWSER_ARGS 配置打开 2 个选项卡
- javascript - 弹性搜索删除 _source 字段内的单个元素
- javascript - 如何使用 Django 处理 POST 表单数据(避免刷新)?
- version-control - RTC 客户端 Java API:如何在从 IChange 合并状态合并之前获取用户版本的状态?
- internationalization - v5 中的 TinyMCE 英语国际化 (i18n)