【问题标题】:How to simulate GCS for offline testing如何模拟 GCS 进行离线测试
【发布时间】:2016-06-15 19:25:03
【问题描述】:

我有一个 Python Google App Engine 应用程序,它从 Google Cloud Storage 读取文件,我可以使用本地开发服务器 (dev_appserver.py) 对其进行离线测试,这很棒。

我还有一个 .NET 工具,可将文件转储到云存储桶中,供 App Engine 应用检索,使用基于示例 hereGoogle.Apis.Storage.v1.StorageService

这适用于写入“实时”云存储,但我如何设置 StorageService 与 dev_appserver.py GCS 模拟器通信,这样我就可以在不使用实时云服务的情况下同时测试这两个工具?

或者,是否有一个不同的 GCS 本地磁盘“模拟器”可以用于 .NET 客户端库和 GAE 本地开发服务器?

【问题讨论】:

    标签: c# python google-app-engine google-cloud-storage


    【解决方案1】:

    GAE GCS 仿真使用github project called appengine-gcs-client。它包括一个名为 local_run() 的函数(在 common.py 中)的检查,它让 api 知道它是在本地运行还是在生产环境中运行。

    在本地运行时,gcs-client 使用从 local_api_url() 返回的仿真 url。这最终看起来像:

    http://localhost:8080/_ah/gcs

    我的建议是尝试从您的本地 .net 应用程序连接到上述 url。这应该足以完成您正在尝试做的事情。

    def local_run():
      """Whether we should hit GCS dev appserver stub."""
      server_software = os.environ.get('SERVER_SOFTWARE')
      if server_software is None:
        return True
      if 'remote_api' in server_software:
        return False
      if server_software.startswith(('Development', 'testutil')):
        return True
      return False
    
    
    def local_api_url():
      """Return URL for GCS emulation on dev appserver."""
      return 'http://%s%s' % (os.environ.get('HTTP_HOST'), LOCAL_GCS_ENDPOINT)
    
    LOCAL_GCS_ENDPOINT = '/_ah/gcs'
    

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      相关资源
      最近更新 更多