diff --git a/src/main/java/org/gaul/s3proxy/azureblob/AzureBlobStore.java b/src/main/java/org/gaul/s3proxy/azureblob/AzureBlobStore.java index 0e21d5a..662db71 100644 --- a/src/main/java/org/gaul/s3proxy/azureblob/AzureBlobStore.java +++ b/src/main/java/org/gaul/s3proxy/azureblob/AzureBlobStore.java @@ -226,6 +226,26 @@ public final class AzureBlobStore extends BaseBlobStore { } } + @Override + public boolean deleteContainerIfEmpty(String container) { + var client = blobServiceClient.getBlobContainerClient(container); + try { + var page = client.listBlobsByHierarchy( + /*delimiter=*/ null, /*options=*/ null, /*timeout=*/ null) + .iterableByPage().iterator().next(); + if (!page.getValue().isEmpty()) { + return false; + } + blobServiceClient.deleteBlobContainer(container); + return true; + } catch (BlobStorageException bse) { + if (bse.getErrorCode() == BlobErrorCode.CONTAINER_NOT_FOUND) { + return true; + } + throw bse; + } + } + @Override public boolean blobExists(String container, String key) { var client = blobServiceClient.getBlobContainerClient(container)