如何使用GCS而不是Blobstore在GAE中生成缩略图?

时间:2017-02-12 17:58:54

标签: google-app-engine google-cloud-storage

我正在创建一个应用程序,用户可以上传一些图片,以便其他人可以看到它们。由于其中一些可能有点大,我需要生成较小的图像来预览内容。

我已经在GCS中使用“https://storage.googleapis.com/ ...”形式在网址中上传了图片,但是从我在Images API docs中看到的内容,它使用了{{3}我没有使用它(它已被取代)。如何从gcs链接提供缩略图以避免让用户加载完整图像?我真的很感激任何代码示例。

更新:

我尝试使用images.Image使用带有blobstore的示例使用带有文件名的图像,但是如果我不尝试任何转换,它会给我一个TransformationError和NotImageError:

{{1}}

我错过了什么?

1 个答案:

答案 0 :(得分:1)

通常,您可以使用Blobstore API,但使用GCS作为底层存储而不是Blobstore,请参阅Using the Blobstore API with Google Cloud Storage。恕我直言,存储被取代,而不是API本身:

  

注意:您应该考虑使用Google Cloud Storage而不是Blobstore来存储blob数据。

特别是对于Image类(来自您的链接),您可以使用filename可选构造函数参数而不是blob_key类(触发上述blobstore API + GCS)在引擎盖下使用):

filename: String of the the file name of a Google Storage file that
          contains the image data. Must be in the format
          `/gs/bucket_name/object_name`.

来自__init__()功能:

if filename:
  self._blob_key = blobstore.create_gs_key(filename)
else:
  self._blob_key = _extract_blob_key(blob_key)