2016-11-20 24 views
0

这里是我的情况,我想复制多个文件分离在谷歌云存储,比如位置:高效的方式上传多个文件分离对谷歌的云存储位置

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 
... 

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

+0

我尝试linux''parallel'与'gsutil -m',它似乎工作正常。 – zyxue

回答

1

如果你的路径是在你的榜样的性质一致,你可以用一个gsutil命令做到这一点:

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

但是,这只能如果你想在目标命名镜像源。如果您的路径是源名称到目的地名称的任意映射,则需要运行单个命令(正如您注意的那样,可以使用parallel加速)。

+0

我意识到你的命令的问题是我只想在'/ local/path/to'下上传'x.csv.gz'。还有许多其他文件我不想传输。 'parallel'似乎工作正常 – zyxue

+0

如果您只想排除文件,可以考虑使用'gsutil rsync -x' –

+0

'gsutil rsync -x'只有在要排除的文件的名称具有少量模式时才有用。 – zyxue

相关问题