如何在开发服务器(Google App Engine)中使用生产BlobStore



我正在Python Google App Engine上开发一个应用程序,我正在使用BlobStore来存储图像数据。

我已将所有数据库信息备份到本地主机以设置本地开发环境,但我想使用生产服务器中的 Blobs 映像(因此我不必将所有文件复制到本地计算机)。

当我调用 images.get_serving_url() 来获取图像 url 时,它会返回一个不存在的本地引用(因为所有图像都在生产服务器中)。

有没有办法将图像类配置为指向我的生产服务器?如果答案是否定的,如何将命中/_ah/img/的开发服务器中的调用重定向到我的生产服务器?

from google.appengine.api import images
print images.get_serving_url(page, size=100)
>> http://0.0.0.0:8080/_ah/img/AMIfv96IySWiIWF-4FRipavsn9xXnkk-EhmNOU0qWZ4y0ORIXj0Ct85C9eXMBdv3JVooWPIm6-2D3U9ffuTtpJEkWh13ZzmmaNKSiu5QMsnk0exNWj7g1OWbpNxcsjtmv52wz94QFQ6xCNz-atycTqfkdDHbX-LWmMqlsrVEs86S4wsAKSNOZZE=s100

我希望此调用的输出是我的生产服务器 URL。

你问的是不可能的。

图像 blob 键或多或少是随机生成的。 即,将 Blob 上传到生产 Blob 存储时,它会生成一个密钥。

开发应用服务器无法知道生产服务器上给定映像的密钥。 如果您将相同的图像"上传"到dev_appserver,它将获得完全不同的密钥。

您的选择是在本地下载所有映像并将其"上传"到本地开发服务器。 如果您使用的是 Google Cloud Storage,gsutil 工具可能会有所帮助: https://developers.google.com/storage/docs/gsutil

或者,在服务器上查找所有 blobstore URL,并在自己的应用程序中手动映射它们。

最新更新