我正在考虑从Blobstore切换到Google Cloud 端存储,用于项目中的图像上传(因为Google称Blobstore为“被取代”) .
在Blobstore中,多部分表单将直接提交(上传)到Blobstore,然后Blobstore会重写请求并重定向到GAE应用程序以处理 BlobKey
(s) . 这意味着GAE应用程序的负载非常小 .
有没有办法用Google Cloud 端存储(GCS)实现类似的工作流程?
在Reading and Writing to Google Cloud Storage给出的示例涉及GAE代码处理上载,读取数据并将其保存在GCS中 .
类似地,为(例如)上传的图像文件提供服务:似乎必须在一个GAE代码中实现处理程序以从GCS读取并返回图像数据 .
有没有办法简单地为GCS中的资源生成URL(AFAIK AWS S3支持这个)并让它从那里提供服务?
2 回答
您可以继续使用blobstore API但使用GCS中的实际存储,这意味着相同的上载行为以及可能对您的应用进行的最小更改 .
从Using the Blobstore API with Google Cloud Storage (Python):
这里还提供了一个完整的示例应用程序 .
Update: 糟糕,上面的答案适用于Python环境,Java如下:
从Using the Blobstore API with Google Cloud Storage (Java):
没有针对Java的完整示例应用程序 .
Google Cloud 端存储确实支持生成用于上传或读取的网址 . 有关更多信息,请参阅:https://cloud.google.com/storage/docs/access-control/create-signed-urls-program
gcloud-java-storage库可以帮助创建这样的signed URL .