2016-05-01 1 views
0

Tentative de configuration d'un gestionnaire de stockage dans Django pour Google Cloud Storage.Impossible de créer le type de pilote libcloud. Aucun certificat CA trouvé. Google Cloud Storage et Django.

J'ai installé django-stockages, et ajouté storages à mon INSTALLED_APPS. J'ai installé apache-libcloud.

J'ai téléchargé this file, à partir de https://curl.haxx.se/docs/caextract.html, et j'ai ajouté son chemin à CA_CERTS_PATH. J'utilise Mac OSX avec Django 1.9 et la dernière version de Google SDK. C'est dans mon environnement local.

# 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, je l'ai confirmé que CA_CERTS_PATHinclut certainement le fichier cacerts.pem.

Et pourtant, quand je lance dev_appserver.py je suis confronté à ceci:

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 

Qu'ai-je manqué? Quel est le problème avec ma configuration que libcloud ne fonctionnera pas? C'est la première fois que je configure une configuration de stockage personnalisée avec Django ou Google Cloud Storage. Toutes les entrées sont les bienvenues.

Répondre

1

Avez-vous essayé d'installer curl-ca-bundle Mac OSX ou le port OpenSSL/faisceau curl-ca paquet homebrew (https://libcloud.readthedocs.io/en/latest/other/ssl-certificate-validation.html)? En théorie, tant que votre fichier groupé CA est dans le bon format et que son chemin est correct, votre approche devrait également fonctionner, mais cela dépend aussi de l'ordre d'importation et de la manière dont django-storages importe libcloud (s'il l'importe dynamiquement après avoir défini le paramètre libcloud.security, votre paramètre n'aura aucun effet).

+0

Une pensée intéressante. Comment pourrais-je suivre la commande d'importation? Les deux curl-ca-bundle et openssl sont aussi 'CA_CERTS_PATH'. – ensminger