2015-01-21 40 views
0

我已经通过GCS客户端库的最新docs并通过example。示例代码显示了如何在GCS上即时创建文件/流。Python使用GCS新客户端库 - 上传对象/'目录'

我该如何resumably(允许恢复如果错误)将现有文件和目录从本地目录上传到GCS存储桶?使用新的客户端库。 IE,这(不能发布超过2个链接,所以h77ps://cloud.google.com/storage/docs/gspythonlibrary#uploading-objects)已被弃用。

感谢所有

P.S 我不需要GAE的功能 - 这是要坐预置并上传到GCS

回答

1

Python的API客户端可以进行断点续传。例子见​​。最重要的一点是:

媒体= MediaFileUpload( 'pig.png',MIME类型= '图像/ PNG',可恢复= TRUE)

不幸的是,库不公开上传ID本身,所以当如果发生错误,上传呼叫将恢复上传,您的应用程序无法明确恢复上传。例如,如果您的应用程序已终止,并且需要在重新启动时恢复上传,则该库不会对您有所帮助。如果您需要这种重试级别,则必须使用其他工具或直接调用httplib。

Boto库完成这个有点不同,并支持保持一个持久化的跟踪令牌,以防您的应用程序崩溃,需要恢复。这里有一个简单的例子,从Chromium's system tests被盗:

# Set up other stuff normally 
res_upload_handler = ResumableUploadHandler(
    tracker_file_name=tracker_file_name, num_retries=3 
dst_key.set_contents_from_file(src_file, res_upload_handler=res_upload_handler) 

由于您希望在新的辣味,访问谷歌云存储的最新,最伟大的Python库可能是APITools,这也为恢复,断点续传和也有examples

+0

我更感兴趣的是如何使用最新的客户端进行上传,在我的问题中提到。不是已弃用的功能。 您提到的文档陈述'2012年7月17日最后更新',这是一段很长的时间。 即使'resumable'在这里不是一个好选择,只要使用[新客户端](https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/getstarted)的工作示例就足够了。 – PyGAE 2015-01-21 18:51:01

+0

我添加了一个Boto示例,并且还引用了一个更新的Python客户端。 – 2015-01-21 20:45:17

+0

谢谢布兰登。 不幸的是我还不能满意,但我会晚点回来。 这里的问题不是关于“最新”或“最热门”的工具,相反,它是关于一个非弃用的,** Google提供的** [客户端库](https://cloud.google.com /应用服务引擎/文档/蟒/ googlecloudstorageclient/getstarted)。在大型企业工作时,不能依赖文档中的工具no。 (是的,我知道克雷格雪铁龙是一个Google员工,但不过)。 这就是我正在寻找的一个工作上传示例,使用[this](https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/getstarted) – PyGAE 2015-01-22 10:18:54