2014-12-21 11 views
7

Với SDK GAE mới nhất (1.9.17), tôi đã làm theo tất cả các hướng dẫn để phân phối hình ảnh lưu trữ đám mây của Google bằng cách sử dụng thư viện hình ảnh và blobstore, nhưng tại địa phương nó cho tôi lỗi 500. Triển khai ứng dụng đến máy chủ sản xuất, phục vụ các hình ảnh hoạt động tốt. Tuy nhiên, điều này là cực kỳ khó chịu vì tôi cần phát triển cục bộ, và dự án của tôi là hình ảnh chuyên sâu.Làm cách nào để phân phát hình ảnh lưu trữ đám mây của Google từ máy chủ cục bộ?

này hoạt động tốt trong sản xuất:

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

Về sản xuất, url phục vụ trông giống như:

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

tại địa phương, url trông giống như:

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

Các App Engine nhật ký lỗi cho biết:

LỖI 2014/12/21 23: 12: 35.256 blob_download.py:204] Không thể tìm blob với phím encoded_gs_file: Z2lmdF9p ...

Tôi có làm điều gì sai? Các tài liệu nói phục vụ hình ảnh cục bộ sẽ hoạt động tốt sau SDK 1.8. Nếu tôi không thể làm điều này để làm việc, giải pháp duy nhất của tôi là giữ tất cả các hình ảnh sản xuất (nhiều GB) được lưu trữ cục bộ để phát triển.

Trả lời

1

Xem this very good repo, giải thích cách lưu tệp trong GCS, trong SDK phát triển hoặc trong quá trình sản xuất.

Cụ thể, câu hỏi của bạn:

# 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 

Nhờ @voscausa.

Các vấn đề liên quan