[ 
https://issues.apache.org/jira/browse/JCLOUDS-1174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan MacDowell updated JCLOUDS-1174:
------------------------------------
    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

{code}
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));
        }
}
{code}


  was:
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

{code}
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 = "pega.engineering.ci.automatedtesting";
                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));
        }
}
{code}



> Transient and Azure blob do not filter out marker blobs from blob exists
> ------------------------------------------------------------------------
>
>                 Key: JCLOUDS-1174
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1174
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-blobstore
>    Affects Versions: 1.9.2
>            Reporter: Ryan MacDowell
>
> 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
> {code}
> 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));
>       }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to