使用GSUtil在本地加载文件

时间:2015-02-25 04:09:00

标签: java google-app-engine gsutil

有谁知道将一组文件本地加载到 Java dev_appserver的模拟云存储中的好方法。

这没有用:

$ gsutil rsync gs://mybucket http://localhost:8888/mybucket
InvalidUrlError: Unrecognized scheme "http".

我愿意接受以下建议:

  1. 如何在本地加载一堆文件(最好是通过gsutil)
  2. 如何将我的本地dev_appserver指向Google上的非模拟存储桶
  3. 在没有适当数据的情况下在本地测试内容很痛苦。我试图编写一些转换来将数据加载到BigQuery(来自数据存储区备份),如果没有一些真实的数据,它将无法实现。

1 个答案:

答案 0 :(得分:1)

“如何将我的本地dev_appserver指向Google上的非模拟存储桶”:它没有明确记录,但 dev_appserver和{{1}中实现}。

要验证我在说什么,首先cloudstorage将cloudstorage的源代码添加到您的计算机上(如果您还没有,则需要安装svn checkout http://appengine-gcs-client.googlecode.com/svn/trunk/python gcs-client,但是,这是免费的太: - 。)

然后,subversion并查看cd gcs-client/src/cloudstorage/。在第一个函数storage_api.py中,docstring说:

_get_storage_api

因此,请查看On dev appserver, this instance by default will talk to a local stub unless common.ACCESS_TOKEN is set. That token will be used to talk to the real GCS. ,然后在第一个函数common.py中再次查看:

  

参数数量:       access_token:你可以通过运行'gsutil -d ls'得到一个并复制         在'Bearer'之后。

所以你有 - 在你的应用的每个条目中(最好在你的根目录中set_access_token),导入appengine_config.py的{​​{1}}模块,然后**当前和仅如果您正在使用dev_appserver [*] call

cloudstorage

使用作为参数字符串的运行'gsutil -d ls'得到的那个,就在common之后,即在其他许多东西中你会发现类似的东西(伪造和缩短实际值...: - ):

common.set_access_token('whatever_the_token')

在这种情况下你要打电话

Bearer

[*]有很多方法可以了解您是否在Bearer xy15.WKXJQEzXPQQy2dt7qK9\r\n ,例如GAE: python code to check if i'm on dev_appserver or deployed to appspot