Google App Engine批量下载

时间:2011-04-30 07:37:47

标签: python google-app-engine download bulk

我使用批量下载从数据存储区下载数据(超过1 GB)。突然,我的互联网停止工作,下载过程停在中间。我想从它停止的地方恢复。当我尝试时,我收到以下错误

File "/Users/FYP/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore_types.py", line 156, in ValidateString
    (name, value, typename(value)))
BadArgumentError: kind should be a string; received 3 (a int):
[INFO    ] [WorkerThread-2] Backing off due to errors: 1.0 seconds
[INFO    ] An error occurred. Shutting down...
[ERROR   ] Error in WorkerThread-0: kind should be a string; received 3 (a int):

这是我下载数​​据的代码

appcfg.py download_data --config_file=bulkloader.yaml --batch_size=200 --filename=final80_2.csv 
--kind=TasksTime1 --url=http://abc.appspot.com/_ah/remote_api --rps_limit=40 
--db_filename=bulkloader-progress-20110429.141103 --result_db_filename=bulkloader-results-20110429.141103

如何解决问题?

2 个答案:

答案 0 :(得分:1)

重新运行相同的命令。每the docs

  

如果转移被中断,你   可以从那里恢复转移   使用--db_filename = ...   论点。值是的名称   该工具创建的进度文件,   这是您提供的名称   使用--db_filename参数时   你开始转移,或默认   包含时间戳的名称。这个   假设你安装了sqlite3,   并没有禁用进度文件   with --db_filename = skip。

您在第一次执行时指定了db_filename,因此如果您重新运行该命令,它应该找到现有文件并从中断处继续。

答案 1 :(得分:0)

我遇到了同样的问题:

Error in WorkerThread-0: kind should be a string; received 3 (a int)

删除所有* .sql3和* .csv文件会阻止此错误发生。显然,是的,恢复已被破坏,但如果您希望能够再次批量下载,则必须禁用它。

当然,我们通常会将bulkloader命令包装在一个函数中,以便事先清理这些文件。