Djangostorages+CloudFront的性能问题

2024-06-01 06:39:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用S3存储桶来存储Django应用程序的静态和媒体文件。我将AWS CloudFront“放在”存储桶的前面,并设置了django-storages,以便使用此CDN为我提供文件。然而,我的要求太长了。值得一提的是,我正在使用HyperlinkedModelSerializerVersatileImageField。我希望CDN能够检索到我的文件,但看起来我的应用程序正在使用boto3从S3下载文件(我认为这是在序列化过程中发生的)

以下是来自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相关的任何已知问题,从而严重影响性能


Tags: 文件todjangopyenv应用程序s3lib