无法创建libcloud驱动程序类型。未找到CA证书。 Google云端存储和Django。

时间:2016-05-01 21:02:54

标签: certificate google-cloud-storage django-storage

尝试在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设置任何自定义存储配置。欢迎所有输入。

1 个答案:

答案 0 :(得分:1)

您是否尝试安装 curl-ca-bundle Mac OSX端口或 openssl / curl-ca-bundle 自制软件包({{3 }})?

理论上,只要您的CA捆绑文件格式正确且路径正确,您的方法也应该正常,但它还取决于导入顺序以及django-storages如何导入libcloud(如果在设置libcloud.security设置后,它会动态导入它,你的设置不会有影响。)