GCSのバケット内にあるオブジェクトのリストを作成するにはStorage.list
を使う
Page<Blob> list = storage.list(<bucket-name>); List<String> fileNameList = new ArrayList<>(); for (Blob file : list.iterateAll()) { fileNameList.add(file.getName()); }
ただ、これだとバケット内全てのオブジェクトのリストになってしまう
もし、次のオブジェクトのうち、file-*
だけのリストを作りたい場合storage.get(bucketName, fileName)
を使うと良さそう
- file-1
- file-2
- other-1
- other-2
List<String> fileNameList = IntStream.range(1, 2 + 1) .mapToObj( idx -> Blob blob = storage.get(bucketName, "file-{id}".replace("{id}", String.valueOf(idx))) ) .filter(Objects::nonNull) .map(Blob::getName) .collect(Collectors.toList());