Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接到Amazon S3时获取HttpHostConnection拒绝错误_Java_Amazon Web Services_Amazon S3 - Fatal编程技术网

Java 连接到Amazon S3时获取HttpHostConnection拒绝错误

Java 连接到Amazon S3时获取HttpHostConnection拒绝错误,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我正在使用java代码连接AmazonS3。每次尝试连接到S3时,我都会收到HttpHostConnection拒绝错误。在S3上,作为所有者,我只有一个bucket拥有所有权限。每当我尝试在bucket中列出文件或尝试在S3上上传文件时,我都会遇到错误 代码如下: TransferManager tx = new TransferManager(credentials); Upload upload = tx.upload("bucket.name", doc.getFil

我正在使用java代码连接AmazonS3。每次尝试连接到S3时,我都会收到HttpHostConnection拒绝错误。在S3上,作为所有者,我只有一个bucket拥有所有权限。每当我尝试在bucket中列出文件或尝试在S3上上传文件时,我都会遇到错误

代码如下:

    TransferManager tx = new TransferManager(credentials);  
    Upload upload = tx.upload("bucket.name", doc.getFileName(),                 new File("C:\\testing2.pdf"));   
    while (upload.isDone() == false) {     
       System.out.println(upload.getProgress().getPercentTransferred() + "%"); 
    } 




INFO [s3-transfer-manager-worker-1] (AmazonHttpClient.java434) - Unable to execute HTTP request: Connection to https://bucket.name.s3.amazonaws.com refused
   org.apache.http.conn.HttpHostConnectException: Connection to https://bucket.name.s3.amazonaws.com refused
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:641)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
    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:383)
    at com.amazonaws.http.AmazonHttpClient.execute0(AmazonHttpClient.java:266)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:236)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3104)
    at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1233)
    at com.amazonaws.services.s3.transfer.internal.UploadCallable.uploadInOneChunk(UploadCallable.java:108)
    at com.amazonaws.services.s3.transfer.internal.UploadCallable.call(UploadCallable.java:100)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.upload(UploadMonitor.java:192)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:150)
    at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:50)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
    at java.util.concurrent.FutureTask.run(FutureTask.java:149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:736)
Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:383)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:245)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:232)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377)
    at java.net.Socket.connect(Socket.java:539)
    at com.ibm.jsse2.tc.connect(tc.java:397)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    ... 21 more 

如果您拥有正确的访问密钥和密钥以连接到AWS S3,则可能需要检查您的凭据。您可以通过IAM管理控制台中的安全凭据获取此信息。

如果您具有连接到AWS S3的正确访问密钥和密钥,则可能需要检查您的凭据。您可以通过IAM管理控制台中的安全凭据获取它。

经过2个月的努力,我找到了解决方案。这里我们需要检查网络中的代理设置。我只是创建了ClientConfig并将代理属性设置为这个对象。我使用putObjectRequest方法上载对象。这是一个密码

ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTPS);
clientConfig.setProxyHost(ip_address);
clientConfig.setProxyPort(port number);
clientConfig.setProxyUsername(user id on network);
clientConfig.setProxyPassword(password on network);

AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials("access key", "secret key"),
clientConfig);
file = new File(fileName);
PutObjectRequest putObject = new PutObjectRequest(bucketName, fileName, file);
ObjectMetadata metaData = new ObjectMetadata();
metaData.setContentType("application/pdf"); //binary data
putObject.setMetadata(metaData);
s3.putObject(putObject);

经过2个月的斗争,我找到了解决办法。这里我们需要检查网络中的代理设置。我只是创建了ClientConfig并将代理属性设置为这个对象。我使用putObjectRequest方法上载对象。这是一个密码

ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTPS);
clientConfig.setProxyHost(ip_address);
clientConfig.setProxyPort(port number);
clientConfig.setProxyUsername(user id on network);
clientConfig.setProxyPassword(password on network);

AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials("access key", "secret key"),
clientConfig);
file = new File(fileName);
PutObjectRequest putObject = new PutObjectRequest(bucketName, fileName, file);
ObjectMetadata metaData = new ObjectMetadata();
metaData.setContentType("application/pdf"); //binary data
putObject.setMetadata(metaData);
s3.putObject(putObject);

为了补充上述答案,我也遇到了路由/DNS问题(通常显示为嵌套的UnknownHostException)

  • 对S3URI进行nslookup(例如,
    nslookup s3.amazonaws.com
  • 如果您使用的是VPN,请确保它实际工作(因为许多VPN在远程端挂起时会显示“活动”,特别是在虚拟机上)。错误/失败的nslookup也应显示这一点

为了补充上述答案,我也遇到了路由/DNS问题(通常显示为嵌套的UnknownHostException)

  • 对S3URI进行nslookup(例如,
    nslookup s3.amazonaws.com
  • 如果您使用的是VPN,请确保它实际工作(因为许多VPN在远程端挂起时会显示“活动”,特别是在虚拟机上)。错误/失败的nslookup也应显示这一点

    • 在我的例子中,这是一个代理问题。在TS3Connection组件上,在高级设置中,我使用客户机参数检查了配置客户机:代理主机、代理端口,它工作正常。在我的情况下,这是一个代理问题。在TS3Connection组件上,在Advanced settings(高级设置)中,我使用客户端参数检查了config client(配置客户端):代理主机、代理端口和它的工作状态。当您设置
      AmazonS3
      对象时,您会传入一个
      ClientConfiguration
      对象

      例如:

      ClientConfiguration clientConfig = new ClientConfiguration();
      clientConfig.withProtocol(Protocol.HTTPS);
      clientConfig.withProxyHost(ip_address);
      clientConfig.withProxyPort(port number);
      clientConfig.withProxyUsername(user id on network);
      clientConfig.withProxyPassword(password on network);
      
      AmazonS3 s3Client=AmazonS3ClientBuilder.standard().withClientConfiguration(clientConfig)


      您的.withProxyHost()值错误

      设置
      AmazonS3
      对象时,会传入
      ClientConfiguration
      对象

      例如:

      ClientConfiguration clientConfig = new ClientConfiguration();
      clientConfig.withProtocol(Protocol.HTTPS);
      clientConfig.withProxyHost(ip_address);
      clientConfig.withProxyPort(port number);
      clientConfig.withProxyUsername(user id on network);
      clientConfig.withProxyPassword(password on network);
      
      AmazonS3 s3Client=AmazonS3ClientBuilder.standard().withClientConfiguration(clientConfig)


      您的.withProxyHost()值错误

      你的网络用户id和密码清晰可见?我没有任何代理,但仍然收到这个错误?你的网络用户id和密码清晰可见吗?我没有任何代理,但仍然收到此错误?有什么帮助吗