【问题标题】:Python using GCS new client library - upload objects/'directories'Python 使用 GCS 新客户端库 - 上传对象/“目录”
【发布时间】:2015-03-19 19:43:04
【问题描述】:

我已经浏览了 GCS 客户端库的最新 docs 并浏览了 example。示例代码展示了如何在 GCS 上即时创建文件/流。

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

谢谢大家

附言 我不需要 GAE 功能 - 这将在内部部署并上传到 GCS

【问题讨论】:

    标签: python google-cloud-storage


    【解决方案1】:

    Python API 客户端可以执行可恢复上传。有关示例,请参阅the documentation。重要的是:

    media = MediaFileUpload('pig.png', mimetype='image/png', resumable=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)
    

    由于您对新的热点感兴趣,用于访问 Google Cloud Storage 的最新、最强大的 Python 库可能是 APITools,它还提供可恢复、可恢复的上传,并且还有 examples

    【讨论】:

    • 我对如何使用我的问题中提到的最新客户端进行上传更感兴趣。不是已弃用的功能。您提到的文档指出“上次更新时间为 2012 年 7 月 17 日”,那是很长一段时间。即使“可恢复”在这里不是一个好的选择,只要一个使用这个new client 的工作样本就足够了。
    • 我添加了一个 Boto 示例以及对更新的 Python 客户端的引用。
    • 谢谢布兰登。不幸的是,我还不能投票,但我稍后会回来投票。这里的问题不在于“最新”或“最热门”工具,相反,它是关于一个未被弃用的、Google 提供的client library。在大型企业中工作时,您不能依赖文档中没有的工具。 (是的,我知道 Craig Citro 是 Google 员工,但尽管如此)。这就是我正在寻找的所有内容,一个使用 this 的工作上传示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多