2014-12-21 3 views
7

Mit dem neuesten GAE-SDK (1.9.17) habe ich alle Anweisungen für die Bereitstellung von Google Cloud-Speicherabbildern mit den Blobstore- und Bildbibliotheken befolgt, aber lokal gibt es einen 500-Fehler. Wenn Sie die App auf dem Produktionsserver bereitstellen, funktionieren die Bilder einwandfrei. Dies ist jedoch extrem ärgerlich, da ich mich lokal weiterentwickeln muss und mein Projekt bildintensiv ist.Wie kann Google Cloud Storage-Image vom lokalen Server bereitgestellt werden?

Dies funktioniert in der Produktion fein:

key = blobstore.create_gs_key('/gs/my_bucket/my_folder/my_image.jpg') 
url = images.get_serving_url(key) 

auf die Produktion, sieht die versorgende URL wie:

http://lh6.ggpht.com/ow6Z3PrYyLVdvRDc9cT9I3MB9ug... 

Lokal, wie die URL aussieht:

http://0.0.0.0:8080/_ah/img/encoded_gs_file:Z2lmdF9p... 

der Motor App Fehlerprotokolle sagen:

ERROR 2014.12.21 23: 12: 35.256 blob_download.py:204] konnte nicht Blob mit Schlüssel encoded_gs_file finden: Z2lmdF9p ...

Mache ich etwas falsch? Die Dokumentation besagt, dass das lokale Bereitstellen von Bildern nach SDK 1.8 funktionieren sollte. Wenn ich dies nicht zum Laufen bringen kann, ist meine einzige Lösung, alle Produktionsbilder (viele GBs) lokal für die Entwicklung bereitzustellen.

Antwort

1

Siehe this very good repo, in dem erläutert wird, wie Dateien in GCS entweder im Entwicklungs-SDK oder in der Produktion gespeichert werden.

Speziell für Ihre Frage:

# image API supported formats 
    if file_extension in ['jpeg', 'jpg', 'png', 'gif', 'bmp', 'tiff', 'ico']: 
     # High-performance dynamic image serving 
     self.serving_url = images.get_serving_url(self.blobkey, secure_url=True) 
    elif os.environ['SERVER_SOFTWARE'].startswith('Development'): 
     # GCS url: this SDK feature has not been documented yet !!! 
     self.serving_url = '/_ah/gcs%s' % self.gcs_filename 
    else: 
     # GCS url: because of HTTPS we cannot use a cname redirect or use the use_blobstore option 
     self.serving_url = 'https://storage.googleapis.com%s' % self.gcs_filename 

Dank @voscausa.

Verwandte Themen