首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于这个“并行复合上传”警告,我该怎么办?

对于这个“并行复合上传”警告,我该怎么办?
EN

Stack Overflow用户
提问于 2017-10-31 19:46:09
回答 2查看 14.7K关注 0票数 12

我正在运行一个python脚本,并使用os库执行一个gsutil命令,该命令通常在gsutil上的命令提示符中执行。我在本地计算机上有一些文件,我想把它放到Google Bucket中,所以我这样做了:

导入操作系统

代码语言:javascript
运行
复制
command = 'gsutil -m cp myfile.csv  gs://my/bucket/myfile.csv'
os.system(command)

我收到这样的信息:

==>注意:您正在上传一个或多个大型文件,如果启用并行复合上载,则会运行得更快。可以通过编辑parallel_composite_upload_threshold配置文件中的“.boto”值来启用此功能。但是,请注意,如果您这样做,那么大型文件将被上传为‘复合对象https://cloud.google.com/storage/docs/composite-objects'_,这意味着任何下载此类对象的用户都需要安装一个已编译的crcmod (请参阅"gsutil help crcmod")。这是因为没有编译的crcmod,复合对象上的校验和计算非常慢,gsutil禁止复合对象的下载。

我想通过隐藏这条消息来消除它,如果它实际上不需要做它所建议的事情,但是我找不到.boto文件。我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-31 19:54:25

并行复合上传文档的gsutil部分描述了如何解决这个问题(如警告所指定的那样,假设客户端将使用此内容,并有可用的crcmod模块):

代码语言:javascript
运行
复制
gsutil -o GSUtil:parallel_composite_upload_threshold=150M cp bigfile gs://your-bucket

要从Python中安全地完成这一任务,如下所示:

代码语言:javascript
运行
复制
filename='myfile.csv'
gs_bucket='my/bucket'
parallel_threshold='150M' # minimum size for parallel upload; 0 to disable

subprocess.check_call([
  'gsutil',
  '-o', 'GSUtil:parallel_composite_upload_threshold=%s' % (parallel_threshold,),
  'cp', filename, 'gs://%s/%s' % (gs_bucket, filename)
])

请注意,您在这里显式地提供参数向量边界,而不依赖shell为您执行此操作;这可以防止恶意或错误的文件名执行不需要的操作。

如果您不知道访问此桶中的内容的客户端将拥有crcmod模块,请考虑在上面设置parallel_threshold='0',这将禁用这种支持。

票数 20
EN

Stack Overflow用户

发布于 2020-08-23 18:58:10

另一种方法是设置提示在BOTO_PATH文件中显示的配置。通常是$HOME/.boto

代码语言:javascript
运行
复制
[GSUtil]
parallel_composite_upload_threshold = 150M

要获得最高速度,请安装crcmod C库

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47043441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档