尝试在Django中为Google云存储配置存储处理程序。
我已经安装了 django-storages ,并将storages
添加到我的INSTALLED_APPS
。
我已经安装了 apache-libcloud 。
我已从this file下载https://curl.haxx.se/docs/caextract.html,并将其路径附加到CA_CERTS_PATH
。我正在使用Mac OSX和Django 1.9以及最新版本的Google SDK。这是在我的本地环境中。
# settings.py
libcloud.security.CA_CERTS_PATH.append(os.path.join(BASE_DIR, 'cacerts.pem'))
LIBCLOUD_PROVIDERS = {
'google': {
'type' : 'libcloud.storage.types.Provider.GOOGLE_STORAGE',
'user' : <my user, hidden here>,
'key' : <my key, hidden as well>,
'bucket': <bucket name>,
}
}
DEFAULT_LIBCLOUD_PROVIDER = 'google'
DEFAULT_FILE_STORAGE = 'storages.backends.apache_libcloud.LibCloudStorage'
STATICFILES_STORAGE = 'storages.backends.apache_libcloud.LibCloudStorage'
Per these docs,我已确认CA_CERTS_PATH
肯定包含 cacerts.pem文件。
然而,当我跑dev_appserver.py
时,我遇到了这个问题:
Unable to create libcloud driver type libcloud.storage.types.Provider.GOOGLE_STORAGE: No CA Certificates were found in CA_CERTS_PATH. For information on how to get required certificate files, please visit https://libcloud.readthedocs.org/en/latest/other/ssl-certificate-validation.html
我错过了什么?我的配置有什么问题,libcloud不起作用?这是我第一次使用Django或Google Cloud Storage设置任何自定义存储配置。欢迎所有输入。
答案 0 :(得分:1)
您是否尝试安装 curl-ca-bundle Mac OSX端口或 openssl / curl-ca-bundle 自制软件包({{3 }})?
理论上,只要您的CA捆绑文件格式正确且路径正确,您的方法也应该正常,但它还取决于导入顺序以及django-storages如何导入libcloud(如果在设置libcloud.security设置后,它会动态导入它,你的设置不会有影响。)