Mar*_*l R 3 google-cloud-storage gsutil
复制一些日志文件(通过gsutil compose命令创建)时:
gsutil -m cp -R gs://mybucket/PROD/ gs://mybucket/TEST/
Run Code Online (Sandbox Code Playgroud)
我们遇到了很多像这样的错误:
"errors":[
{
"domain":"usageLimits",
"reason":"rateLimitExceeded",
"message":"The total number of compose requests for this bucket's project exceeds the rate limit. Please reduce the rate of compose requests."
}
],
"code":429,
Run Code Online (Sandbox Code Playgroud)
对这些对象执行gsutil统计,我可以看到它们的Component-Count是972等等.
我们试图走捷径:
gsutil setmeta -h "Component-Count:0" gs://mybucket/PROD/composite.log
Run Code Online (Sandbox Code Playgroud)
但我们遇到了:
CommandException: Invalid or disallowed header (component-count).
Only these fields (plus x-goog-meta-* fields) can be set or unset:
Run Code Online (Sandbox Code Playgroud)
实际上,复制过程是完全执行的,所以只看到所有这些错误是非常烦人的.
有谁知道如何将组件数设置为0?
您可以放心地忽略这些错误.正如您所注意到的,gsutil cp命令完成了它的工作.
如果你想摆脱这些错误,你可能想尝试这种解决方法Component-Count将复合对象的标题设置为0 ,并基本上"取消组合"对象.为此,您可以将其转储到线路并再次返回到云存储.
一种简单的方法是使用cp命令中的"菊花链"模式(-D选项):
gsutil cp -D gs://mybucket/PROD/composite.log gs://mybucket/PROD/notcompositeanymore.log
Run Code Online (Sandbox Code Playgroud)
它甚至可以与gsutil -m(多线程)和cp -R(递归)选项一起使用!
如果您担心提高速度并降低此过程的成本,我建议您从计算引擎VM中进行,最好是在靠近您的存储区的区域.
快乐的编码!
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |