我发现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配置。
任何想法,这是否是故意更改?
我们担心,如果我们确实更新了所有内容,它将恢复原状吗?
谢谢
史蒂夫
答案 0 :(得分:0)
您所描述的“之前”行为并不是gsutil应该如何工作的:如here所述,“复制单独命名的文件将导致由源文件的最终路径组件命名的对象”。
如果您能够使gsutil重现您使用较旧版本的gsutil描述的“之前”行为,请提供重现此细节:gsutil版本,复制之前的存储区内容以及源文件夹/对象名称。您可以在gs:// pub / gsutil_ *
下找到所有以前的版本