gpt4 book ai didi

django - 为 Django Heroku 应用程序、Amazon S3 设置 MEDIA_URL

转载 作者:行者123 更新时间:2023-12-02 10:59:32 26 4
gpt4 key购买 nike

我一直在尝试为我的 Heroku 应用程序设置 MEDIA_URL,该应用程序当前通过 Amazon S3 的 STATIC_URL 提供静态文件。静态文件工作正常,但是当我尝试在当前 STATIC_URL 之外添加 MEDIA_URL 时,页面根本不再呈现,并且应用程序停止工作。

当前设置为:

AWS_STORAGE_BUCKET_NAME = 'bucketname'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL
AWS_ACCESS_KEY_ID = 'KEY'
AWS_SECRET_ACCESS_KEY = 'SECRET_KEY'

当我添加时:

MEDIA_URL = S3_URL
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

这导致了这个问题。具体来说,MEDIA_URL 有问题,因为删除 DEFAULT_FILE_STORAGE 后,它仍然存在相同的问题。但我试图确定如何最好地通过此方式提供用户上传的媒体服务,但未成功。

如果有人对如何最好地实现这一目标有任何见解,我们将不胜感激。

最佳答案

This解决方案效果很好,如下所述。

在与 settings.py 相同的目录中创建一个名为 s3utils.py 的文件:

from storages.backends.s3boto import S3BotoStorage

StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')

然后在settings.py中:

DEFAULT_FILE_STORAGE = 'myproyect.s3utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'myproyect.s3utils.StaticRootS3BotoStorage'

关于django - 为 Django Heroku 应用程序、Amazon S3 设置 MEDIA_URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11403063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com