【问题标题】:Efficient way upload multiple files to separate locations on google cloud storage将多个文件上传到谷歌云存储上不同位置的有效方式
【发布时间】:2016-11-22 06:25:31
【问题描述】:

这是我的情况,我想将多个文件复制到谷歌云存储上的不同位置,例如:

gsutil -m cp /local/path/to/d1/x.csv.gz gs://bucketx/d1/x.csv.gz
gsutil -m cp /local/path/to/d2/x.csv.gz gs://bucketx/d2/x.csv.gz
gsutil -m cp /local/path/to/d3/x.csv.gz gs://bucketx/d3/x.csv.gz
...

我有超过 10k 的此类文件,通过单独调用 gsutil 执行它们似乎真的很慢,并且在设置网络连接上浪费了大量时间。请问最有效的方法是什么?

【问题讨论】:

  • 我试过 linux parallelgsutil -m,它似乎工作正常。

标签: google-cloud-storage gsutil


【解决方案1】:

如果您的路径与示例中的性质一致,您可以使用一个gsutil 命令来做到这一点:

gsutil -m cp -r /local/path/to/* gs://bucketx

但是,这仅在您希望目标命名镜像源时才有效。如果您的路径是源名称到目标名称的任意映射,则需要运行单独的命令(如您所见,可以使用 parallel 加速)。

【讨论】:

  • 我意识到你的命令的问题是我只想在/local/path/to下上传x.csv.gz。还有很多其他文件我不想传输。 parallel 似乎工作正常
  • 如果你只是想排除文件,你可以考虑使用gsutil rsync -x
  • gsutil rsync -x 仅在要排除的文件名具有少量模式时才有用。
猜你喜欢
  • 1970-01-01
  • 2014-09-30
  • 2019-06-03
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 2018-07-11
相关资源
最近更新 更多