【问题标题】:How to use production BlobStore in development server (Google App Engine)如何在开发服务器(Google App Engine)中使用生产 BlobStore
【发布时间】:2013-11-24 20:08:43
【问题描述】:

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

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

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

有没有办法将图像类配置为指向我的产品服务器?如果答案是否定的,我如何将来自我的开发服务器的调用重定向到 /_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。

【问题讨论】:

    标签: python image google-app-engine blobstore


    【解决方案1】:

    你的要求是不可能的。

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

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

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

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

    【讨论】:

    • 我刚刚检查了我的生产和开发服务器particulat文件的BlobKey和他们是一样的:PROD:AMIfv95f38Dp3bPn5ftLXS2G0sEwf043tDDeHZA6Dp9qHB8Q5I-uJ7GyOzQ-U-a1_14zgR8s4b2Gn6Osq7arwCUhna5HFEcwAGUJXMM4lW8y_ZJQUQ2Imz5wHRLGQk1EVeW7_KDSydk6B8K-Ql_xE3cBYYEyeEVbqw发展:AMIfv95f38Dp3bPn5ftLXS2G0sEwf043tDDeHZA6Dp9qHB8Q5I-uJ7GyOzQ-U a1_14zgR8s4b2Gn6Osq7arwCUhna5HFEcwAGUJXMM4lW8y_ZJQUQ2Imz5wHRLGQk1EVeW7_KDSydk6B8K -Ql_xE3cBYYEyeEVbqw 我认为这是因为我们使用生产服务器中的数据库来加载我们的本地开发环境。
    • 抱歉,我忽略了这一点。你还是有点搞砸了,因为 get_serving_url() 仍然返回截然不同的 url。您想在服务器端调用 get_serving_url() 并将该 url 存储在数据存储中,然后在您的开发服务器中使用它。我知道你会犹豫,因为你必须再次下载数据,但这样做有一个好处:get_serving_url() 很慢,如果你存储该 url 和在生产中使用它而不是不断调用 get_serving_url()
    • 如何发现我的 Blob 是托管在 BlobStore 还是 Google Cloud Storage 中?
    • 取决于您用于上传文件的 API。
    • 根据this answer,您目前无法使用gsutil 将文件上传到本地开发服务器。
    猜你喜欢
    • 2011-10-19
    • 2012-03-21
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2018-06-09
    相关资源
    最近更新 更多