检查 blob 是否存在时出现空指针异常

null pointer exception when I check if a blob exists

我有一个 com.google.cloud.storage.Blob 对象。我已经能够在我的 java 代码中使用这个对象很好地下载和上传,但我想在开始 process.In 之前检查是否存在某些东西,简而言之,这是我的代码给我问题的一部分.

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class Function implements BackgroundFunction<GcsEvent> {
    public void accept(GcsEvent event, Context context) {
        String bucketname = "my_bucket";
        String blob_path = "path/to/my/object.jpg";
        Storage storage = StorageOptions.newBuilder().setProjectId("my_project_id").build().getService();
        Blob b = storage.get(BlobId.of(bucketname, blob_path));
        // this is where the null pointer exception occurs
        boolean exists = b.exists();
        if (exists) {
            //do something
        }
    }
}

Eclipse 似乎没有在 IDE 中捕获它。这些例子似乎也遵循这种布局。有人知道这是怎么回事吗?

我 运行 在 Linux 环境机器上。 (它在云功能中也失败了)。 我正在使用 Java 11 运行时。

我觉得很傻。我发现如果找不到对象,storage.get(BlobId.of(bucketname, blob_path)); 将 return null。而不是使用 b.exists(),应该使用 if (b != null) { //do stuff }.

检查它是否为空