Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.9.2
-
None
Description
If you create a directory in azureblob or transient, blobexists will return true for that directory name. It does not seem to filter out the marker blobs. If you create a directory in aws-s3 and call blobexists on that directory name it will return false.
Example code below
import org.jclouds.ContextBuilder; import org.jclouds.blobstore.BlobStore; import org.jclouds.blobstore.BlobStoreContext; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; //Test for equals behavior public class DirectoryExistsTest { public static void main(String[] args) { String containerName = "test.container"; String testDirectory = "testDirectory"; AWSCredentials creds = new DefaultAWSCredentialsProviderChain().getCredentials(); //Setup the contexts BlobStoreContext transientContext = ContextBuilder.newBuilder("transient") .credentials(creds.getAWSAccessKeyId(), creds.getAWSSecretKey()) .build(BlobStoreContext.class); BlobStoreContext awsS3Context = ContextBuilder.newBuilder("aws-s3") .credentials(creds.getAWSAccessKeyId(), creds.getAWSSecretKey()) .build(BlobStoreContext.class); //Setup the blobstores BlobStore transientStore = transientContext.getBlobStore(); BlobStore awsS3Store = awsS3Context.getBlobStore(); //Setup the containers transientStore.createContainerInLocation(null, containerName); awsS3Store.createContainerInLocation(null, containerName); //Setup the directories transientStore.createDirectory(containerName, testDirectory); awsS3Store.createDirectory(containerName, testDirectory); System.out.println("Transient directory should exist " + transientStore.directoryExists(containerName, testDirectory)); System.out.println("Transient blob should not exist " + transientStore.blobExists(containerName, testDirectory)); System.out.println("aws-s3 directory should exist " + awsS3Store.directoryExists(containerName, testDirectory)); System.out.println("aws-s3 blob should not exist " + awsS3Store.blobExists(containerName, testDirectory)); } }