gpt4 book ai didi

google-cloud-storage - 递归复制时对象和/或路径中的国际字符可能出现问题

转载 作者:行者123 更新时间:2023-12-05 08:00:31 24 4
gpt4 key购买 nike

在使用 gsutil 上传大量图像后,我遇到了一个奇怪的问题 - 无法通过 Google Cloud Console 看到上传的文件,如果我尝试执行“gsutil ls”,gsutil 本身就会提示。我 99% 确定它与在目录名称中使用“å”或“Å”以及空格有关。

所有上传都是从根文件夹(多级子目录中的大型图像集合)递归完成的。如果我尝试再次上传文件,gsutil 会跳过它们,因为它们已经存在,所以上传功能会一些事情 - 它只是与列表和下载的工作方式不同。

一个例子:

gsutil cp -R -n /Volumes/Photos/digitalfotografen.dk/2009/2009-05-30\ Søgården\ -\ bryllup/ gs://digitalfotografen/2009/
Skipping existing item: gs://digitalfotografen/2009/2009-05-30 Søgården - bryllup/Søgården 0128.CR2
...

好的 - 所以文件在那里,但是通过 Google Cloud Console 浏览目录显示“无结果”。

还有:

gsutil ls gs://digitalfotografen/2009/2009-06-27 Søgården - reklamefotos/20090627_IMG_0128.CR2
CommandException: "ls" command does not support "file://" URIs. Did you mean to use a gs:// URI?

我尝试转义空格并以不同的方式使用引号,但没有成功。

现在,有趣的是:

gsutil cp -R -n /Volumes/Photos/digitalfotografen.dk/2009/2009-05-30\ Søgården\ -\ bryllup/ gs://digitalfotografen/2009/
Copying file:///Volumes/Photos/digitalfotografen.dk/2009/2009-05-30 Søgården - bryllup/Søgården 0128.CR2 [Content-Type=application/octet-stream]...

这里我在source 侧专门复制了带有转义空格的文件夹,现在文件再次上传。这将创建第二个具有相同名称的文件夹(至少在 Cloud Console 中如此显示)并且这些文件现在在两个文件夹中都可见。

我们在丹麦语字符集中使用了标准美国 ASCII 之外的三个不同字符(“æøå”和大写字母“ÆØÅ”),但问题似乎影响了“å”和“Å"- 其他两个单独或组合使用都很好。我的直觉是,“å”和“Å”可能会在 ASCII 中转换为完全不同的东西,当允许 gsutil 根据根文件夹的名称自行处理目录命名时,这些东西会偏离正轨(进行多级递归) ) 但在用户指定根文件夹的转义名称时有效。

这可能是 python 问题而不是 gsutil 问题,但我没有资格识别这个问题,因为我对一些大杂烩 shell 脚本之外的编程知识几乎为零。

最佳答案

我们在使用 gsutil 进入 ubuntu wsl 版本 windows 10 时遇到了问题。命令 gsutil 在 shell 中完美工作,但在包含在 shell 脚本中时不起作用:

gsutil -m ls -lr gs://project.appspot.com/

错误:

commandexception: "ls" command does not support "file://" urls. did you mean to use a gs:// url?

云的解决方法是直接调用脚本/usr/lib/google-cloud-sdk/platform/gsutil/gsutil 而不是调用链接/usr/bin/gsutil:

/usr/lib/google-cloud-sdk/platform/gsutil/gsutil -m ls -lr gs://project.appspot.com/

我不知道为什么,但它正在工作。

感谢 Marion 为我们提供如此罕见的错误 :-)

关于google-cloud-storage - 递归复制时对象和/或路径中的国际字符可能出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18170852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com