Django アプリの静的ファイルとメディア ファイルに S3 バケットを使用しています。バケットの「前」に AWS CloudFront があり、django-storages
この CDN を使用してファイルを提供するようにセットアップしました。しかし、リクエストに時間がかかりすぎています。私が と を使用していることは言及する価値がHyperlinkedModelSerializer
ありVersatileImageField
ます。私のファイルは CDN によって取得されたと思いますが、私のアプリは実際に S3 からファイルをダウンロードするために boto3 を使用しているようです (これはシリアル化中に発生していると思います)。
cProfile からの情報を次に示します。
ncalls tottime percall cumtime percall filename:lineno(function)
174 0.004 0.000 17.172 0.099 /MyProjectPath/env/lib/python3.8/site-packages/storages/backends/s3boto3.py:515(exists)
61 0.003 0.000 16.586 0.272 /MyProjectPath/env/lib/python3.8/site-packages/boto3/s3/inject.py:723(object_download_fileobj)
61 0.001 0.000 16.582 0.272 /MyProjectPath/env/lib/python3.8/site-packages/boto3/s3/inject.py:624(download_fileobj)
62 0.003 0.000 57.723 0.931 /MyProjectPath/env/lib/python3.8/site-packages/rest_framework/serializers.py:507(to_representation)
62 0.000 0.000 57.687 0.930 /MyProjectPath/env/lib/python3.8/site-packages/versatileimagefield/serializers.py:53(to_representation)
62 0.000 0.000 57.687 0.930 /MyProjectPath/env/lib/python3.8/site-packages/versatileimagefield/serializers.py:42(to_native)
62 0.003 0.000 57.686 0.930 /MyProjectPath/env/lib/python3.8/site-packages/versatileimagefield/utils.py:220(build_versatileimagefield_url_set)
アプリが S3 バケットに直接接続する必要はないと思います。誰もこれを経験しましたか?これは設定ミスによるものでしょうか、または DRF/django-storages/VersatileImage に関連してパフォーマンスにこれほど悪影響を与える既知の問題はありますか?