[PYTHON] Zeigen Sie ImageField-Bilder normalerweise mit Django + Google Cloud Strage auf dem Server an

Bilder werden auch bei Verwendung von ImageField auf Servern wie Heroku und GAE (Google App Engine) nicht richtig angezeigt.

Dies liegt daran, dass SQL das Hochladen von Bildern nicht unterstützt. Um dies zu beheben, müssen Sie das Bild in einen Cloud-Speicher wie Google Cloud Strage oder Amazon S3 hochladen.

Dieses Mal zeige ich Ihnen, wie Sie Bilder in Google Cloud Storage hochladen.

Offizielle Dokumentation zu Django Strage (Google Cloud Storage) https://django-storages.readthedocs.io/en/latest/backends/gcloud.html

Installieren Sie Django Strage

Installieren Sie "Django Strage (Google Cloud Storage)", eine Django-Bibliothek für die Arbeit mit Google Cloud Strage auf Django, mit pip.

bash


$ pip install django-storages[google]

Erhalten Sie Anmeldeinformationen auf der Google Cloud Platform

Registrieren Sie in der Google Cloud Platform Ihre Cloud Strage-Anmeldeinformationen und erhalten Sie eine JSON-Datei mit Ihren Anmeldeinformationen.

Ein Dienstkonto erhalten

Sie können es aus dem Google Start Guide (https://cloud.google.com/docs/authentication/getting-started) herunterladen.

Schritt 1 Wählen Sie unter dem Link im Google Start Guide (https://cloud.google.com/docs/authentication/getting-started) die Option "Gehe zur Seite [Dienstkontoschlüssel erstellen]]." 手順1

Schritt 2 Geben Sie den Namen des Dienstkontos unter Neues Dienstkonto erstellen ein. GCS2 Wählen Sie dann "Speicher" -> "Speicheradministrator" aus der Rolle. Stellen Sie sicher, dass der Schlüsseltyp JSON ist, und klicken Sie auf die Schaltfläche "Erstellen". GCS3 Dadurch wird die JSON-Datei heruntergeladen. GCS4

** Legen Sie die heruntergeladene JSON-Datei im Stammverzeichnis Ihres Django-Projekts ab. ** ** **

Erstellen eines Buckets für Google Cloud Storage

Die Einheit von Cloud Strage wird als Bucket bezeichnet (dh wie ein Bucket zum Einfügen von Daten). Erstellen Sie dies, um Ihre Daten zu speichern.

Google Cloud Console (Cloud Strage) https://console.cloud.google.com/storage/browser

Wenn Sie über die obige URL darauf zugreifen, wird der folgende Erstellungsbildschirm angezeigt. Erstellen Sie daher einen neuen Bucket. 作成画面.png

Wenn Sie fertig sind, wird der folgende Bildschirm angezeigt. 作成完了.png

Damit sind die Einstellungen in der Google Cloud Platform-Konsole abgeschlossen.

Einstellungen in Django

Fügen Sie Einstellungen zu settings.py hinzu

Legen Sie den Standardspeicher und den Bucket-Namen in der Datei settings.py fest.

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'),
)

Damit sind die Einstellungen abgeschlossen.

Führen Sie danach den folgenden Befehl aus.

bash


$ python manage.py collectstatic

Das Bereitstellen der Konfigurationsänderungen auf dem Server sollte funktionieren.

Danke für deine harte Arbeit.

Recommended Posts

Zeigen Sie ImageField-Bilder normalerweise mit Django + Google Cloud Strage auf dem Server an
So beheben Sie die Probleme beim Lesen von Google Cloud Storage-Bildern von Django, die auf GAE bereitgestellt wurden
Django + Apache mit mod_wsgi unter Windows Server 2016
Fehler, bei dem statische Dateien nicht auf dem AppEngine-Entwicklungsserver angezeigt werden
Zeichentipps mit matplotlib auf der Serverseite
Betten Sie andere Bilder mit ArcPy in das Raster ein
Installieren Sie django auf Python + Anaconda und starten Sie den Server
Anzeigen von Wettervorhersagen auf M5Stack + Google Cloud Platform
Greifen Sie mit python27 / pyodbc auf dem Container auf den SQL Server des Hosts zu
Bis zum Start des Django-Tutorials mit Pycharm unter Windows
Speichern Sie Bilder im Web mit Python (Colab) auf einem Laufwerk.