我有一个Python Google App Engine应用程序,可以从Google云端存储中读取文件,我可以使用本地开发服务器(dev_appserver.py)离线测试,这很棒。
我还有一个.NET工具,可以根据样本here使用Google.Apis.Storage.v1.StorageService
将文件转储到云存储桶中,以便App Engine应用程序检索。
这适用于写入“实时”云存储,但是如何设置StorageService与dev_appserver.py GCS模拟器通信,这样我可以在不使用实时云服务的情况下一起测试这两个工具?
或者,是否有一个不同的GCS本地磁盘“模拟器”可以与.NET客户端库和GAE本地开发服务器一起使用?
答案 0 :(得分:0)
GAE GCS仿真使用github project called appengine-gcs-client。它包括一个名为local_run()(在common.py中)的函数的检查,它允许api知道它是在本地还是在生产中运行。
在本地运行时,gcs-client使用从local_api_url()返回的仿真URL。这最终看起来像:
我建议,尝试从本地.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'