gpt4 book ai didi

java - 测试谷歌云存储桶是否存在?

转载 作者:行者123 更新时间:2023-11-30 10:31:05 24 4
gpt4 key购买 nike

这段代码是我写的

private void doesBucketExist(String bucketName) {
try {
GoogleCredential credential = myUtil.getCredential();
JsonFactory jsonFactory = new JacksonFactory();
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
Storage.Builder storageBilder = new Storage.Builder(transport, jsonFactory, credential);
Storage storage = storageBilder.build();
Objects objects = storage.objects();
List listObjects = objects.list(bucketName);
if (listObjects != null && listObjects.getBucket().equalsIgnoreCase(bucketName)) {
System.out.println("Bucket exist");
} else {
System.out.println("Bucket does not exist");
}

} catch (Exception e) {
throw e;
}
}

它正在提供 listObjects,即使我传递了一个不存在的存储桶名称,因此我得到了 Bucket exist

我确实看到了 this但无法在我的代码中使用它,因为 storage 来自与我在程序中使用的包不同的包。

如何判断指定的bucket是否存在?

最佳答案

如果您无权访问存储桶,则列出或获取存储桶都会有问题。您可能会收到 404 或 403,具体取决于存储桶是否归其他人所有。此外,无法保证使用其中一种方法检查存储桶是否存在然后尝试创建它一定会成功,因为有人可能会在两次调用之间创建存储桶。

相反,检查存储桶是否存在的推荐方法是尝试创建存储桶并查找返回的错误。它要么成功并返回成功的 HTTP 响应,要么失败并返回 409 错误,表明存储桶已经存在。请注意,您仍应重试 5xx 错误代码。

关于java - 测试谷歌云存储桶是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43361250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com