0

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 に関連してパフォーマンスにこれほど悪影響を与える既知の問題はありますか?

4

0 に答える 0