I have developed a client use Jets3t library to connect to S3 .. when
i try to upload, listbucks i have got hte following messsage
CONNECTED
2009-07-23 17:50:12,221 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - I/O exception
(java.net.ConnectException) caught when processing request: Connection
refused: connect
2009-07-23 17:50:12,221 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - Retrying request
2009-07-23 17:50:13,314 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - I/O exception
(java.net.ConnectException) caught when processing request: Connection
refused: connect
2009-07-23 17:50:13,314 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - Retrying request
2009-07-23 17:50:14,408 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - I/O exception
(java.net.ConnectException) caught when processing request: Connection
refused: connect
2009-07-23 17:50:14,408 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - Retrying request
2009-07-23 17:50:15,502 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - I/O exception
(java.net.ConnectException) caught when processing request: Connection
refused: connect
2009-07-23 17:50:15,502 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - Retrying request
2009-07-23 17:50:16,517 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - I/O exception
(java.net.ConnectException) caught when processing request: Connection
refused: connect
2009-07-23 17:50:16,517 [main] INFO
org.apache.commons.httpclient.HttpMethodDirector - Retrying request
2009-07-23 17:50:17,455 [main] WARN
org.jets3t.service.utils.RestUtils - Retried connection 6 times, which
exceeds the maximum retry count of 5
2009-07-23 17:50:17,455 [main] ERROR jetS3t.service.S3_service -
Service error in creating the bucket
org.jets3t.service.S3ServiceException: S3 PUT connection failed for
'/'
at
org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest
(RestS3Service.java:516)
at
org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestPut
(RestS3Service.java:800)
at
org.jets3t.service.impl.rest.httpclient.RestS3Service.createObjectImpl
(RestS3Service.java:1399)
at
org.jets3t.service.impl.rest.httpclient.RestS3Service.createBucketImpl
(RestS3Service.java:1270)
at org.jets3t.service.S3Service.createBucket(S3Service.java:1558)
at org.jets3t.service.S3Service.createBucket(S3Service.java:1257)
at org.jets3t.service.S3Service.createBucket(S3Service.java:1284)
at jetS3t.service.S3_service.createBucket(S3_service.java:68)
at jetS3t.service.Client_1.main(Client_1.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
90)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:
195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:516)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect
(SSLSocketImpl.java:549)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket
(ReflectionSocketFactory.java:140)
at
org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket
(SSLProtocolSocketFactory.java:130)
at org.apache.commons.httpclient.HttpConnection.open
(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:
1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry
(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod
(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod
(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod
(HttpClient.java:323)
at
org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest
(RestS3Service.java:342)
... 13 more
2009-07-23 17:50:17,455 [main] INFO jetS3t.service.S3_service -
BEFORE UPLOAD: S3Object
[key=MyDocument.doc,bucket=<Unknown>,lastModified=null,
dataInputStream=null] Metadata={}
2009-07-23 17:50:17,455 [main] ERROR jetS3t.service.S3_service -
S3ServiceException when creating file
org.jets3t.service.S3ServiceException: The action Create Object in
bucket cannot be performed with an invalid bucket: null
at org.jets3t.service.S3Service.assertValidBucket(S3Service.java:
1135)
at org.jets3t.service.S3Service.putObject(S3Service.java:1913)
at jetS3t.service.S3_service.uploadObject(S3_service.java:100)
at jetS3t.service.Client_1.main(Client_1.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
90)
Process finished with exit code 0
this is the clinet code
package jetS3t.service;
import org.jets3t.service.model.S3Object;
public class Client_1
{
public static void main(String [] args)
{
S3_service s = new S3_service();
s.createBucket("second-bucket");
S3Object obj = s.createObject("MyDocument.doc");
s.uploadObject(obj);
}
}
and this S3_service
package jetS3t.service;
import java.io.File;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.log4j.Logger;
import org.jets3t.service.S3Service;
import org.jets3t.service.S3ServiceException;
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;
public class S3_service
{
private CompositeConfiguration config;
private Logger log;
public S3Service service;
public S3Bucket bucket;
private AWSCredentials aws = null;
private S3Object object = null;
public S3_service()
{
this.config = new CompositeConfiguration();
this.log = Logger.getLogger(S3_service.class);
try
{
config.addConfiguration(new PropertiesConfiguration
("program.properties"));
aws = new AWSCredentials(config.getString("program.key.access"),
config.getString("program.key.secret"));
this.service = new RestS3Service(aws);
System.out.println("CONNECTED");
}
catch (S3ServiceException e)
{
log.error("Service could not connect");
e.printStackTrace();
}
catch (ConfigurationException e)
{
log.error("Could not load the configuration file");
e.printStackTrace();
}
}
public void createBucket(String name)
{
try
{
bucket = service.createBucket(name);
log.info("BUCKET CREATED: " + bucket.getName());
}
catch (S3ServiceException e)
{
log.error("Service error in creating the bucket");
e.printStackTrace();
}
}
public S3Object createObject(String name)
{
object = new S3Object(name);
return object;
}
public S3Object setContent(S3Object obj, File file)
{
obj.setDataInputFile(file);
return obj;
}
public void uploadObject(S3Object object)
{
try
{
log.info("BEFORE UPLOAD: " + object);
object = service.putObject(bucket, object);
log.info("AFTER UPLOAD: " + object);
object = service.getObjectDetails(bucket, object.getKey());
log.info("DETAILS ONLY: " + object);
String etag = object.getETag();
log.info("THE TAG OF THE UPLOADED OBJECT IS " + etag);
}
catch (S3ServiceException e)
{
log.error("S3ServiceException when creating file");
e.printStackTrace();
}
}
public void deleteObject(String key)
{
try
{
service.deleteObject(bucket.getName(), key);
}
catch (S3ServiceException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void downloadObjectDetails(String objName)
{
try
{
S3Object obj = service.getObjectDetails(bucket, objName);
log.info("S3OBJECT COMPLETE, " + obj);
String etag = object.getETag();
log.info("THE TAG OF THE DOWNLOADED OBJECT IS " + etag);
}
catch (S3ServiceException e)
{
log.error("Service exception in downloading object");
e.printStackTrace();
}
}
public void listBuckets()
{
try
{
S3Bucket[] myBuckets = service.listAllBuckets();
log.info("HOW MANY BUCKETS? " + myBuckets.length);
}
catch (S3ServiceException e)
{
log.error("Service exception in listing buckets");
e.printStackTrace();
}
}
}