BlobId blobId = BlobId.of(bucketName, filename);
Blob blob = storage.get(blobId);
boolean isFileDeleted = storage.delete(blobId);


在这里,我为blob获得null,其中bblo具有文件名空间。在我的存储桶中,结构为sample-bucket/Archive 2copy.zip。请注意文件名中的空格。

有人可以帮我吗?

最佳答案

我正在使用Google Java Api - StorageExample.java,并且能够删除名称中带有空格的Blob。他们正在按ID删除Blob。

 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

09-27 20:38