Django存储 - 无法加载亚马逊的S3绑定错误

aga*_*430 14 python django amazon-s3 amazon-web-services python-django-storages

嘿所以试图将我的用户上传的图像连接到我的S3存储桶,以便图像存储在那里.使用django存储(进行了一些研究,似乎是每个人都建议的,但对想法持开放态度)

这是我做的:

安装了django存储

pip install django-storages
Run Code Online (Sandbox Code Playgroud)

将它添加到我的INSTALLED_APPS中

#settings.py
INSTALLED_APPS = (
...
'storages',
)
Run Code Online (Sandbox Code Playgroud)

并将此代码添加到settings.py中

#settings.py
DEFAULT_FILE_STORAGE = 'storages.backends.s3.S3Storage'
AWS_ACCESS_KEY_ID = '#################'
AWS_SECRET_ACCESS_KEY = '#######################'
AWS_STORAGE_BUCKET_NAME = 'mybucketname'
Run Code Online (Sandbox Code Playgroud)

然后我打开shell并运行它来检查

from django.core.files.storage import default_storage
print default_storage.connection
...
ImproperlyConfigured: Could not load amazon's S3 bindings.
See http://developer.amazonwebservices.com/connect/entry.jspa?externalID=134
Run Code Online (Sandbox Code Playgroud)

该链接导致404错误.一直关注文档并尝试了所有3种方法来设置DEFAULT_FILE_STORAGE,但它们都不起作用.见下文.

DEFAULT_FILE_STORAGE = 'libs.storages.backends.S3Storage.S3Storage'
ImproperlyConfigured: Error importing storage module libs.storages.backends.S3Storage

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
ImproperlyConfigured: Could not load Boto's S3 bindings.
Run Code Online (Sandbox Code Playgroud)

如何正确设置?

Dan*_*den 27

你有安装python-boto吗?
pip install boto


Mr-*_*IDE 5

考虑使用 boto3 而不是旧的 bo​​to:

要求.txt:

pip install django-storages
pip install boto3
Run Code Online (Sandbox Code Playgroud)

设置.py:

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
Run Code Online (Sandbox Code Playgroud)