处理 gsutil -m -q setmeta 时出错
Errors when processing gsutil -m -q setmeta
处理命令时:
gsutil -m -q setmeta -h "Cache-Control:public, max-age=10"
我经常遇到这些错误:
ERROR 1028 16:10:46.257674 retry_decorator.py] Retrying in 0.94 seconds ...
Traceback (most recent call last):
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/third_party/retry-decorator/retry_decorator/retry_decorator.py", line 20, in f_retry
return f(*args, **kwargs)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/commands/setmeta.py", line 248, in SetMetadataFunc
provider=exp_src_url.scheme)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/cloud_api_delegator.py", line 212, in PatchObjectMetadata
generation=generation, preconditions=preconditions, fields=fields)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/gcs_json_api.py", line 819, in PatchObjectMetadata
generation=generation)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/gcs_json_api.py", line 1308, in _TranslateExceptionAndRaise
raise translated_exception
PreconditionException: PreconditionException: 412 Precondition Failed
服务器在 Google 计算引擎上并经常更新:
gcloud 组件更新
似乎该过程实际上已完成,但这些错误不断出现。知道是什么原因造成的,是否有解决方案?
谢谢。
这可能有两个原因:
- 另一个客户端同时更新了对象(或其元数据)。
- 存在需要重试的暂时性服务或网络错误(因此 "Retrying" 消息),但原始请求实际上成功了。重试针对原始对象的元生成进行了预处理,因此即使原始操作成功,它也会失败。
如果原因是 #1,您可以通过避免并发更新对象来解决它。如果原因是 #2,很遗憾,您无能为力。
处理命令时:
gsutil -m -q setmeta -h "Cache-Control:public, max-age=10"
我经常遇到这些错误:
ERROR 1028 16:10:46.257674 retry_decorator.py] Retrying in 0.94 seconds ...
Traceback (most recent call last):
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/third_party/retry-decorator/retry_decorator/retry_decorator.py", line 20, in f_retry
return f(*args, **kwargs)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/commands/setmeta.py", line 248, in SetMetadataFunc
provider=exp_src_url.scheme)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/cloud_api_delegator.py", line 212, in PatchObjectMetadata
generation=generation, preconditions=preconditions, fields=fields)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/gcs_json_api.py", line 819, in PatchObjectMetadata
generation=generation)
File "/usr/local/share/google/google-cloud-sdk/platform/gsutil/gslib/gcs_json_api.py", line 1308, in _TranslateExceptionAndRaise
raise translated_exception
PreconditionException: PreconditionException: 412 Precondition Failed
服务器在 Google 计算引擎上并经常更新:
gcloud 组件更新
似乎该过程实际上已完成,但这些错误不断出现。知道是什么原因造成的,是否有解决方案?
谢谢。
这可能有两个原因:
- 另一个客户端同时更新了对象(或其元数据)。
- 存在需要重试的暂时性服务或网络错误(因此 "Retrying" 消息),但原始请求实际上成功了。重试针对原始对象的元生成进行了预处理,因此即使原始操作成功,它也会失败。
如果原因是 #1,您可以通过避免并发更新对象来解决它。如果原因是 #2,很遗憾,您无能为力。