无法加载 Boto 的 S3 绑定。 (安装博托)
Posted
技术标签:
【中文标题】无法加载 Boto 的 S3 绑定。 (安装博托)【英文标题】:Could not load Boto's S3 bindings. (Installed Boto) 【发布时间】:2013-04-15 09:55:18 【问题描述】:我正在尝试使用 s3 来存储用户的上传文件,我使用 django 存储
pip install django-storages
将其添加到我的 INSTALLED_APPS
INSTALLED_APPS = (
...
'存储',
)
在 settings.py 中设置变量
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '#################'
AWS_SECRET_ACCESS_KEY = '#######################'
AWS_STORAGE_BUCKET_NAME = 'mybucketname'
我已经安装了boto
sudo pip install boto
dyld:DYLD_ 环境变量被忽略,因为主可执行文件 (/usr/bin/sudo) 是 setuid 或 setgid
要求已经满足(使用 --upgrade 升级):boto in /Library/Python/2.7/site-packages/boto-2.9.0_dev-py2.7.egg
正在清理...
当我保存项目时,django的调试页面跳出来,
无法加载 Boto 的 S3 绑定。
见https://github.com/boto/boto
有什么想法吗? (我用的是mac os x 10.8.3)
【问题讨论】:
Error "Could not load Boto's S3 bindings."的可能重复 【参考方案1】:创建一个 bash 脚本:install_latest_boto.sh:
#install latest boto from source
cd /home/ubuntu/
sudo mkdir boto_temp
cd boto_temp
sudo git clone git://github.com/boto/boto.git
cd boto
sudo python setup.py install
关于 Django 的设置 - django 默认存储为 s3:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_S3_FILE_OVERWRITE = False
在你的 models.py 上:
class MyBaseModel(models.Model):
class Meta:
abstract = True
@staticmethod
def get_upload_path(instance, filename):
if hasattr(instance, 'get_upload_folder'):
return os.path.join(instance.get_upload_folder(), filename)
else:
raise Exception('Upload Folder is missing')
class User(MyBaseModel):
name = models.CharField(max_length=100)
email = models.EmailField(max_length=255, unique=True)
image = models.ImageField(upload_to=MyBaseModel.get_upload_path, default=None, blank=True, max_length=200)
def get_upload_folder(self):
upload_folder = 'users/images/orig'
return upload_folder
【讨论】:
以上是关于无法加载 Boto 的 S3 绑定。 (安装博托)的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上使用 Boto 时,无法连接到名称中带有句点的 S3 存储桶
升级到 Django 1.7。出现错误:无法序列化:<storages.backends.s3boto.S3BotoStorage 对象
使用带有 Compressor 的 Boto 的 Django AWS S3 无法压缩 UncompressableFileError