【问题标题】:gsutil path name not passed from the command line to the destination bucketgsutil 路径名未从命令行传递到目标存储桶
【发布时间】:2019-03-16 05:41:07
【问题描述】:

我发现 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 配置。

任何想法,这是故意的改变吗?

我们担心如果我们更新所有内容,它会恢复吗?

谢谢

史蒂夫

【问题讨论】:

    标签: sdk google-cloud-storage gsutil


    【解决方案1】:

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

    如果您能够让 gsutil 重现您使用旧版本 gsutil 描述的“之前”行为,请提供重现该行为的详细信息:gsutil 版本、复制前的存储桶内容以及源文件夹/对象名称。您可以在 gs://pub/gsutil_* 下访问所有以前的版本

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多