1,问题描述
(1)通过java api 调用ceph s3 接口中遇到的如下问题:
2013-1-8 21:59:44 com.amazonaws.http.AmazonHttpClient executeHelper 信息: Unable to execute HTTP request: Connection to https://192.168.0.19 refused org.apache.http.conn.HttpHostConnectException: Connection to https://192.168.0.19 refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:280) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2949) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2921) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:499) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:507) at haha.main(haha.java:30) Caused by: java.net.ConnectException: Connection refused 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:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 14 more 2013-1-8 21:59:45 com.amazonaws.http.AmazonHttpClient executeHelper 信息: Unable to execute HTTP request: Connection to https://192.168.0.19 refused org.apache.http.conn.HttpHostConnectException: Connection to https://192.168.0.19 refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:280) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2949) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2921) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:499) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:507) at haha.main(haha.java:30) Caused by: java.net.ConnectException: Connection refused 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:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 14 more 2013-1-8 21:59:46 com.amazonaws.http.AmazonHttpClient executeHelper 信息: Unable to execute HTTP request: Connection to https://192.168.0.19 refused org.apache.http.conn.HttpHostConnectException: Connection to https://192.168.0.19 refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:280) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2949) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2921) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:499) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:507) at haha.main(haha.java:30) Caused by: java.net.ConnectException: Connection refused 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:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 14 more 2013-1-8 21:59:49 com.amazonaws.http.AmazonHttpClient executeHelper 信息: Unable to execute HTTP request: Connection to https://192.168.0.19 refused org.apache.http.conn.HttpHostConnectException: Connection to https://192.168.0.19 refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:280) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2949) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2921) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:499) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:507) at haha.main(haha.java:30) Caused by: java.net.ConnectException: Connection refused 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:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 14 more Exception in thread "main" com.amazonaws.AmazonClientException: Unable to execute HTTP request: Connection to https://192.168.0.19 refused at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:328) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:165) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2949) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2921) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:499) at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:507) at haha.main(haha.java:30) Caused by: org.apache.http.conn.HttpHostConnectException: Connection to https://192.168.0.19 refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:280) ... 6 more Caused by: java.net.ConnectException: Connection refused 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:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 14 more
(2)源代码:
import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.List;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.util.StringUtils;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.S3ObjectSummary;
public class haha {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String accessKey = "R3949EV1BHELWIZXKGJR";
String secretKey = "fmimw6JPDApNC5r+iYknX7JXsvBu8DON3J24Sk1A";
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 conn = new AmazonS3Client(credentials);
//conn.setEndpoint("objects.dreamhost.com");
conn.setEndpoint("192.168.0.19");
List<Bucket> buckets = conn.listBuckets();
for (Bucket bucket : buckets) {
System.out.println(bucket.getName() + "\t" +
StringUtils.fromDate(bucket.getCreationDate()));
}
}
}
(3)library
2,解决办法
根据错误提示在google出了各种提示信息,其中一个有用的是开放http的80端口,按照这个提示做了之后,又提示如下错误:
2013-1-8 22:09:34 com.amazonaws.http.AmazonHttpClient executeHelper
信息: Unable to execute HTTP request: peer not authenticated
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
说明端口号不是根本问题,,,,最后发现原来只要在路径名前加上“http://“一切问题就都解决了,,
即原代码中
conn.setEndpoint("192.168.0.19");
修改为:
conn.setEndpoint("http://192.168.0.19");
就可以调用ceph s3接口成功。