我正在使用Google Cloud Python API将blob上传到存储桶中,这很好用。
但是,对于我的特定用例,我需要防止文件被覆盖。而不是两次去做(第一次请求检查文件是否存在,第二次上传blob),我更愿意一次性完成。
显然,这可以通过使用一些条件HTTP headers, e.g. If-None-Match: '*'
来完成。
遗憾的是,Google Cloud Python API似乎不允许任何自定义标头。
关于如何解决这个问题的任何想法?
由于
答案 0 :(得分:0)
在GoogleCloudPlatform Issues log in GitHub - #4490中找到了一种解决方法:
我目前正在通过将
google.cloud.storage.blob._MULTIPART_URL_TEMPLATE
和google.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' )
这被标记为功能请求。希望它能在不久的将来添加。