【问题标题】:Uploading a Blob using HTTP conditional headers使用 HTTP 条件标头上传 Blob
【发布时间】:2018-10-18 04:24:23
【问题描述】:

我正在使用 Google Cloud Python API 将 blob 上传到存储桶中,效果很好。 但是,对于我的特定用例,我需要防止文件被覆盖。而不是分两次进行(第一次请求检查文件是否存在,第二次上传 blob),我更愿意一次完成。
显然这可以通过使用一些条件HTTP headers, e.g. If-None-Match: '*' 来完成。

很遗憾,Google Cloud Python API 似乎不允许任何自定义标头。

有什么想法可以解决这个问题吗?

谢谢

【问题讨论】:

    标签: python google-cloud-storage google-cloud-python


    【解决方案1】:

    GoogleCloudPlatform Issues log in GitHub - #4490中找到了解决方法:

    我目前正在解决这个问题,将google.cloud.storage.blob._MULTIPART_URL_TEMPLATEgoogle.cloud.storage.blob._RESUMABLE_URL_TEMPLATE 替换为具有我需要的先决条件的版本,例如

    from google.cloud import storage as gcs
    
    gcs.blob._MULTIPART_URL_TEMPLATE = (
        f'{gcs.blob._MULTIPART_URL_TEMPLATE}&ifGenerationMatch=0'
    )
    gcs.blob._RESUMABLE_URL_TEMPLATE = (
        f'{gcs.blob._RESUMABLE_URL_TEMPLATE}&ifGenerationMatch=0'
    )
    

    这被标记为功能请求。希望它会在不久的将来添加。

    【讨论】:

    • 当您找到此功能请求的解决方法时,请接受答案。
    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2021-06-16
    • 2011-09-01
    • 2018-12-14
    • 2015-01-24
    • 2017-04-21
    相关资源
    最近更新 更多