//2012-05-30 johnpfeiffer requires jets3t-0.9.0 , Apache: log4j-1.2.16 , commons-codec-1.4 , commons-logging-1.1.1, httpclient, httpcore
// http://jets3t.s3.amazonaws.com/api/org/jets3t/service/impl/rest/httpclient/RestS3Service.html
// http://jets3t.s3.amazonaws.com/api/org/jets3t/service/Jets3tProperties.html
import java.io.File;
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.impl.rest.httpclient.RestS3Service;
import org.jets3t.service.model.S3Bucket;
import org.jets3t.service.model.S3Object;
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 ();
// Gemini
String awsAccessKey = "accesskey";
String awsSecretKey = "secretkey";
jets3tProperties.setProperty( "s3service.s3-endpoint" , "s3.gemini-technologies.com" );
jets3tProperties.setProperty( "s3service.s3-endpoint-http-port" , "18080" );
jets3tProperties.setProperty( "s3service.s3-endpoint-https-port" , "8443" );
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() + " , isAuthenticated = "+ s3Service.isAuthenticatedConnection() ) ;
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" );
}
S3Object emptyObject = new S3Object( "folder/testEmpty" ); //pseudo folder in the Key
String emptyObjectKey = emptyObject.getKey();
System.out.println( "S3 emtpyObject before upload: " + emptyObject );
S3Object object = null;
String bucketName = "testbucket";
try{
currentBucket = s3Service.getOrCreateBucket( bucketName );
System.out.println( currentBucket.getName() + " isAccessible = " + s3Service.isBucketAccessible( currentBucket.getName() ) + " is meaningless" );
emptyObject = s3Service.putObject( currentBucket , emptyObject );
System.out.println("S3Object after upload: " + emptyObject );
object = new S3Object( currentBucket , new File( "c:\\test.txt" ) );
object = s3Service.putObject( currentBucket , object );
System.out.println("object after upload: " + object );
System.out.println( "...attempting to delete " + emptyObjectKey );
s3Service.deleteObject( currentBucket.getName() , emptyObjectKey );
}catch( S3ServiceException s3e )
{ s3e.printStackTrace();
}catch( ServiceException se )
{ se.printStackTrace();
}catch( Exception e )
{ e.printStackTrace();
}
}
} //end class