Skip to content

Commit 720fbf6

Browse files
authored
blobstore: change validate bucket exists method (#305)
1 parent 07fcf88 commit 720fbf6

File tree

1,864 files changed

+27309
-28556
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,864 files changed

+27309
-28556
lines changed

blob/blob-gcp/src/main/java/com/salesforce/multicloudj/blob/gcp/GcpBlobStore.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import com.salesforce.multicloudj.blob.driver.DownloadRequest;
5151
import com.salesforce.multicloudj.blob.driver.DownloadResponse;
5252
import com.salesforce.multicloudj.blob.driver.FailedBlobDownload;
53-
import com.salesforce.multicloudj.common.exceptions.UnSupportedOperationException;
5453
import com.salesforce.multicloudj.blob.driver.FailedBlobUpload;
5554
import com.salesforce.multicloudj.blob.driver.ListBlobsPageRequest;
5655
import com.salesforce.multicloudj.blob.driver.ListBlobsPageResponse;
@@ -261,7 +260,6 @@ protected void doDelete(Collection<BlobIdentifier> objects) {
261260
List<BlobId> blobIds = objects.stream()
262261
.map(obj -> transformer.toBlobId(bucket, obj.getKey(), obj.getVersionId()))
263262
.collect(Collectors.toList());
264-
265263
storage.delete(blobIds);
266264
}
267265

@@ -453,17 +451,19 @@ protected void doAbortMultipartUpload(MultipartUpload mpu) {
453451

454452
/**
455453
* Validates that the bucket exists, throwing ResourceNotFoundException if not found.
454+
* Uses Objects.List with pageSize(1) instead of Buckets.Get so that only
455+
* {@code storage.objects.list} is required on the bucket, not {@code storage.buckets.get}.
456456
*
457457
* @throws ResourceNotFoundException if the bucket does not exist
458458
*/
459459
private void validateBucketExists() {
460460
try {
461-
Bucket bucketObj = storage.get(bucket);
462-
if (bucketObj == null) {
463-
throw new ResourceNotFoundException("Bucket not found: " + bucket);
464-
}
461+
storage.list(getBucket(), Storage.BlobListOption.pageSize(1));
465462
} catch (StorageException e) {
466-
throw new ResourceNotFoundException("Bucket not found: " + bucket, e);
463+
if (e.getCode() == 404) {
464+
throw new ResourceNotFoundException("Bucket not found: " + bucket, e);
465+
}
466+
throw new UnknownException("Failed to check bucket existence", e);
467467
}
468468
}
469469

blob/blob-gcp/src/test/java/com/salesforce/multicloudj/blob/gcp/GcpBlobStoreTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
import static org.mockito.ArgumentMatchers.anyInt;
109109
import static org.mockito.ArgumentMatchers.anyLong;
110110
import static org.mockito.ArgumentMatchers.eq;
111+
import static org.mockito.Mockito.anyString;
111112
import static org.mockito.Mockito.doReturn;
112113
import static org.mockito.Mockito.doThrow;
113114
import static org.mockito.Mockito.lenient;
@@ -603,6 +604,7 @@ void testDoDownload_WithPath_ThrowsException() {
603604
void testDoDelete_WithKeyAndVersionId() {
604605
// Given
605606
when(mockTransformer.toBlobId(TEST_BUCKET, TEST_KEY, TEST_VERSION_ID)).thenReturn(mockBlobId);
607+
when(mockStorage.list(anyString(), any())).thenReturn(null);
606608

607609
// When
608610
gcpBlobStore.doDelete(TEST_KEY, TEST_VERSION_ID);

0 commit comments

Comments
 (0)