john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

s3 jets3t object listing chunked filter

//2012-05-31 johnpfeiffer  requires jets3t-0.9.0 , Apache: log4j-1.2.16 , commons-codec-1.4 , commons-logging-1.1.1, httpclient, httpcore
// delimiters and keys http://docs.amazonwebservices.com/AmazonS3/latest/dev/ListingKeysHierarchy.html

import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.jets3t.service.Jets3tProperties;
import org.jets3t.service.S3ServiceException;
import org.jets3t.service.ServiceException;
import org.jets3t.service.StorageObjectsChunk;
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
import org.jets3t.service.model.S3Bucket;
import org.jets3t.service.model.StorageObject;
import org.jets3t.service.security.AWSCredentials;
import org.jets3t.service.security.ProviderCredentials;

public class Main
{
    static Logger rootLogger = Logger.getRootLogger();

  public static void main(String[] args)
  {
    if( !rootLogger.getAllAppenders().hasMoreElements() )
        {       rootLogger.setLevel( Level.INFO );
                rootLogger.addAppender( new ConsoleAppender(  new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN )  ) );
        }

    Jets3tProperties jets3tProperties = new Jets3tProperties ();

    String awsAccessKey = "accesskey";
    String awsSecretKey = "sharedsecret";
    jets3tProperties.setProperty( "s3service.s3-endpoint" , "devncss.nifty.com" );  //s3 compatible
    jets3tProperties.setProperty( "s3service.s3-endpoint-http-port" , "80" );
    jets3tProperties.setProperty( "s3service.s3-endpoint-https-port" , "443" );
    jets3tProperties.setProperty( "s3service.https-only" , "false" );

    ProviderCredentials providerCredentials = new AWSCredentials( awsAccessKey , awsSecretKey );
    S3Bucket[] myBuckets = null;
    S3Bucket currentBucket = null;
    RestS3Service s3Service = null;
    try{
        s3Service = new RestS3Service( providerCredentials , null , null , jets3tProperties );
        System.out.println( "endpoint = " + s3Service.getEndpoint() );
        myBuckets = s3Service.listAllBuckets();
    }catch( S3ServiceException e )
    {       e.printStackTrace();
    }

    if( myBuckets != null )
    {       System.out.println( "How many buckets? " + myBuckets.length );
            for( int i=0; i<myBuckets.length; i++ )
            {       System.out.println( myBuckets[i].getName() );
            }
    }else
    {       System.out.println( "ERROR: unable to list all buckets" );
    }

    String bucketName = "test-bucket";
    try{
        currentBucket = s3Service.getBucket( bucketName );
        if( currentBucket == null )
        {       System.out.println( "Could not get bucket: " + bucketName );
        }else
        {
            String prefix = "";
            String delimiter = null;    // way to filter out , i.e. /USA/CA/Carmel using filter '/' would return the object with key Carmel
            long maxListingLength = 2;
            String priorLastKey = null;
            boolean completeListing = false;    //if set to true it will ignore listing length
            StorageObjectsChunk buffer = null;
            buffer = s3Service.listObjectsChunked( bucketName , prefix , delimiter, maxListingLength, priorLastKey , completeListing );
            StorageObject[] results = buffer.getObjects();
            if( results == null || results.length == 0  )
            {       System.out.println( "No results found with prefix: " + prefix + " from " + bucketName );
            }else
                for( int i=0; i<results.length; i++ )
                {       System.out.println( results[i].getKey() );
                }
            }

    }catch( S3ServiceException s3e )
    {       s3e.printStackTrace();
        }catch( ServiceException se )
        {       se.printStackTrace();
        }catch( Exception e )
    {       e.printStackTrace();
    }

  }

} //end class

  • « s3 jets3t bucket create upload file
  • s3List jets3t 0.1 »

Published

May 31, 2012

Category

java

~245 words

Tags

  • chunked 2
  • filter 6
  • java 252
  • jets3t 4
  • listing 9
  • object 7
  • s3 17