gsutil路径名未从命令行传递到目标存储桶

时间:2018-10-11 07:54:03

标签: sdk google-cloud-storage gsutil

我发现Google SDK发生了奇怪的变化,我看不到任何发行说明。

它似乎在4.28和4.34版本之间的某个地方,通过gsutil命令传递路径名的方式已更改。

之前:

gsutil cp myfolder/myfile.csv gs://mybucket/ 

将文件复制到名为gs://mybucket/myfolder的子文件夹中

现在,使用最新版本,它只会复制到指定的gs://mybucket/

顶部文件夹中

我的问题是我有数十个批处理文件,它们全部执行以下操作...

for %%f in (./Myfolder/*.csv) do (
   call gsutil cp Myfolder/%%f gs://mis_sc/
)

现在,我意识到这是一个简单(但很乏味)的更改,将其添加到所有gsutil命令的末尾,但是我们在PC上混用了多个版本,如果较旧的版本以更改后的脚本运行,我会得到两个文件夹同名,一个在另一个。同样,逻辑是网络上的文件夹名称=存储桶名称,因此作业可以非常通用。

我们已经在升级前和升级后的两台PC上进行了测试,以确保它不是造成行为差异的PC配置。

任何想法,这是否是故意更改?

我们担心,如果我们确实更新了所有内容,它将恢复原状吗?

谢谢

史蒂夫

1 个答案:

答案 0 :(得分:0)

您所描述的“之前”行为并不是gsutil应该如何工作的:如here所述,“复制单独命名的文件将导致由源文件的最终路径组件命名的对象”。

如果您能够使gsutil重现您使用较旧版本的gsutil描述的“之前”行为,请提供重现此细节:gsutil版本,复制之前的存储区内容以及源文件夹/对象名称。您可以在gs:// pub / gsutil_ *

下找到所有以前的版本