Les images ne s'affichent pas correctement même lorsque vous utilisez ImageField sur des serveurs tels que Heroku et GAE (Google App Engine).
En effet, SQL ne prend pas en charge le téléchargement d'images et pour résoudre ce problème, vous devez télécharger l'image sur un stockage cloud tel que Google Cloud Strage ou Amazon S3.
Cette fois, je vais vous montrer comment télécharger des images sur Google Cloud Storage.
Documentation officielle de Django Strage (Google Cloud Storage) https://django-storages.readthedocs.io/en/latest/backends/gcloud.html
Installez Django Strage (Google Cloud Storage)
, une bibliothèque Django pour travailler avec Google Cloud Strage sur Django, avec pip.
bash
$ pip install django-storages[google]
Depuis Google Cloud Platform, enregistrez vos informations d'identification Cloud Strage et obtenez un fichier JSON contenant vos informations d'identification.
Vous pouvez l'obtenir à partir du guide de démarrage Google (https://cloud.google.com/docs/authentication/getting-started).
étape 1 À partir du lien dans le guide de démarrage Google (https://cloud.google.com/docs/authentication/getting-started), sélectionnez "Accéder à la page [Créer une clé de compte de service]"
Étape 2 Entrez le nom du compte de service dans Créer un nouveau compte de service. Sélectionnez ensuite "Stockage" -> "Administrateur de stockage" dans le rôle. Assurez-vous que le type de clé est JSON et cliquez sur le bouton "Créer". Cela téléchargera le fichier JSON.
** Placez le fichier JSON téléchargé dans le répertoire racine de votre projet Django. ** **
L'unité de Cloud Strage s'appelle un bucket (c'est-à-dire un bucket dans lequel placer des données) Créez-le pour stocker vos données.
Google Cloud Console (Cloud Strage) https://console.cloud.google.com/storage/browser
Si vous accédez à partir de l'URL ci-dessus, vous verrez l'écran de création suivant, alors créez un nouveau compartiment.
Une fois terminé, l'écran ci-dessous s'affiche.
Ceci termine les paramètres de la console Google Cloud Platform.
Définissez le stockage par défaut et le nom du compartiment dans le fichier settings.py.
settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_BUCKET_NAME = '[YOUR_BUCKET_NAME_GOES_HERE]'
from google.oauth2 import service_account
GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
os.path.join(BASE_DIR, '[YOUR_AUTHENTICATON_KEY_FILE_NAME].json'),
)
Ceci termine les réglages.
Après cela, exécutons la commande suivante.
bash
$ python manage.py collectstatic
Et le déploiement des modifications de configuration sur le serveur devrait fonctionner.
Je vous remercie pour votre travail acharné.
Recommended Posts