【发布时间】:2024-05-29 12:05:01
【问题描述】:
我早期使用 Files API 将数据保存到 blobstore,然后使用以下代码读取它:
resource = blob_key
blob_info = blobstore.BlobInfo.get(resource)
if blob_info:
self.send_blob(blob_info)
else:
self.response.write('Blob entry not found')
文档说,在许多情况下,我可以继续使用 blobstore API 来使用 Google Cloud Storage。但是上面的代码返回的blob_info 等于None。
按照the documentation,我应该直接从blobstore读取数据,但是下面的代码也不适用于GCS(Blob entry not found),但适用于blobstore文件:
class BlobstoreServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, resource):
resource = str(urllib.unquote(resource))
blob_info = blobstore.BlobInfo.get(resource)
if blob_info: # blobstore files
self.send_blob(blob_info)
elif blobstore.get(resource): # Google Cloud Storage files
self.send_blob(resource)
else:
self.response.write('Blob entry not found')
【问题讨论】:
-
使用 GCS 你没有 blob_info 对象。将 self.send_blob(blob_key) 与 gs blobkey 一起使用,或使用 gcs_filename 从 GCS 下载
-
谢谢,@voscausa。我已经更新了问题。
标签: google-app-engine google-cloud-storage