我遇到了 Google Cloud Storage (GCS) 的问题,当我从命令行列出目录内容时,动态创建的文件夹不会出现。
问题:
以编程方式在 GCS 中成功创建了一个文件夹,但是当我运行
gsutil ls gs://my-bucket-name/
时,新文件夹没有显示在目录列表中。
不过,我可以确认该文件夹存在,因为我可以在 GCP Console 中看到它。
采取的故障排除步骤:
验证文件夹创建成功。 确认存储桶和文件夹的权限正确。 确保我在 gsutil 命令中使用正确的存储桶名称。 问题:
动态创建的文件夹在命令行列表中出现的速度是否存在已知的延迟? GCS 中是否存在可能阻止在命令行中立即可见的任何缓存问题或设置? 任何确保新创建的文件夹显示在命令行列表中的指导或解决方法将不胜感激!预先感谢。
问题是:“文件夹不存在”。
真的!我向你保证!您可以在这里查看。它被命名为模拟文件夹。这是一个假文件夹。这里的黑客如下:在路径 /my-folder/
中创建一个名为“”(空名称)、大小为 0b 的文件像这样,你可以认为你有一个文件夹,你可以在UI中看到它。但是 CLI 强制执行了一个过滤器来过滤这些空名称 0b 大小的文件。
尝试
gsutil ls -l gs://....
你应该会看到类似这样的东西
0 2024-11-05T08:12:13Z gs://...../fake-folder/
TOTAL: 1 objects, 0 bytes (0 B)
为了确认这一点,我在 CLI 中测试了这个(之前的)缺陷,它不再出现。 CLI 已修补,即使您只有一个空名称 0b 大小的文件,您现在也可以看到您的文件夹。
因此,请更新您的 gcloud CLI 来解决该问题
另一个重要点是云存储的最新发展。正如你所看到的,你有模拟文件夹,但你也有 HNS(分层命名空间),它是相当新的,可以更好地匹配传统的块存储概念与树结构、文件夹......
最后,您拥有托管文件夹,它不是一个“文件夹”,而只是文件夹(模拟或 HNS)的安全方面,以便能够对其强制执行权限(并由托管文件夹中包含的所有对象/文件夹继承)文件夹)