s3桶返回NoneTyp

2024-09-28 05:39:58 发布

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

与此处完全相同的问题: Can't collectstatic to s3 via Heroku using boto - s3 bucket returns a NoneType

这仍然不能解决这个问题。在

我的重要部分设置.py在

from base64 import b64decode
from storages.backends.s3boto import S3BotoStorage


DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

AWS_S3_SECURE_URLS = False       # use http instead of https
AWS_QUERYSTRING_AUTH = False     # don't add complex authentication-related query parameters for requests
AWS_S3_ACCESS_KEY_ID = <snip>     # enter your access key id
AWS_S3_SECRET_ACCESS_KEY = <snip> # enter your secret 
AWS_STORAGE_BUCKET_NAME = 'mybucket/images/'
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL

在runserver上,collectstatic或从celery执行。我也有同样的错误:

^{pr2}$

为keyid、access key和bucket name设置环境变量。有趣的变化

S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME

S3_URL = 'http://%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME

结果是一个更奇怪的错误:

    from django.db.models import signals, sql
ImportError: cannot import name signals

在我开始尝试s3集成之前,这个网站运行得很好。在


Tags: namefromimportawshttpurls3bucket
1条回答
网友
1楼 · 发布于 2024-09-28 05:39:58

从您的设置.py公司名称:

from storages.backends.s3boto import S3BotoStorage

它不需要任何东西,它导致了这个错误。当您导入S3BotoStorage时,该类尝试从设置.py. 为了避免无限的导入循环,Python只允许S3BotoStorage类从设置.py在import S3BotoStorage行之前设置的。所有其他变量将显示为None,其中包括重要的AWS_STORAGE_BUCKET_NAME设置。在

另请注意,bucket name设置(AWS_STORAGE_bucket_name)不应包含“/”,这是bucket名称中不允许的。这可能会导致其他错误后,这是一个修正。但是,您可以在S3_URL设置中包含完整路径。在

相关问题 更多 >

    热门问题