【发布时间】:2020-07-20 04:32:02
【问题描述】:
我在尝试确定 Google Cloud Storage 中是否存在“目录/文件夹”时遇到问题。
我知道技术上没有“目录”或“文件夹”的概念,但我需要检查是否存在特定前缀。
这是我检测是否存在正常工作的 Blob 的方式:
public boolean doesFileExist(String bucket, String prefix) {
Blob blob = storage.get(bucket, prefix);
return blob != null;
}
当使用带有扩展名的实际文件名时,这似乎有效。但是,将其用于 folder/ 之类的东西是行不通的。
有什么建议吗?
【问题讨论】:
-
云存储中不存在文件夹。可以创建一个名为“文件夹/”的对象,这是一些软件工具用来模拟文件夹的方法。 Cloud Storage 是一个平面命名空间。文件
folderA/file1和folderB/file1存在于同一级别。如果对象folderA/file1存在,则前缀将包含folderA,但这不是文件系统约定中的真实文件夹。/字符是 Cloud Storage 命名空间中的可用字符,仅对您的软件具有特殊意义。 -
Iterable<Blob> blobs = storage.list("gcpBucket", Storage.BlobListOption.prefix("gcpFolderPath")).iterateAll();如果您得到任何 blob,则该文件夹存在,否则不存在。
标签: java google-cloud-platform google-cloud-storage