невозможно удалить файл в gcp хранилище, используя java, в котором есть пробел в имени файла - PullRequest
0 голосов
/ 26 марта 2020
BlobId blobId = BlobId.of(bucketName, filename);
Blob blob = storage.get(blobId);
boolean isFileDeleted = storage.delete(blobId);

Здесь я получаю null для BLOB-объекта, в котором есть место для имени файла. В моем ведре структура sample-bucket/Archive 2copy.zip. Обратите внимание на пробел в имени файла.

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Как указала адитья нирмала:

Изменено с компиляции com.google.cloud:google-cloud-storage:1.88.0 «скомпилировать» com.google.cloud:google-cloud -storage: 1.106.0 'изменения в этой версии решили проблему.

0 голосов
/ 27 марта 2020

Я использовал Google Java Api - StorageExample. java и смог удалить большой двоичный объект с пробелом в его имени. Они удаляют BLOB по id.

 private static class DeleteAction extends BlobsAction {
    @Override
    public void run(Storage storage, BlobId... blobIds) {
      // use batch operation
      List<Boolean> deleteResults = storage.delete(blobIds);
      int index = 0;
      for (Boolean deleted : deleteResults) {
        if (deleted) {
          // request order is maintained
          System.out.printf("Blob %s was deleted%n", blobIds[index]);
        }
        index++;
      }
    }
  }

  Expected: <bucket> <path>+
  target/appassembler/bin/StorageExample delete bucket-name 'test file'
  Blob BlobId{bucket=bucket-name, name=test file, generation=null} was deleted
...