使用OSS Java SDK时报“Connection to XXXX refused”错误

问题描述

使用OSS Java SDK时,报类似如下错误信息。

Connection to http://buname.oss-cn-hangzhou-internal.aliyuncs.com refused
[RequestId]: Unknown
        at com.aliyun.oss.common.utils.ExceptionFactory.createNetworkException(ExceptionFactory.java:31)
        at com.aliyun.oss.common.comm.DefaultServiceClient.sendRequestCore(DefaultServiceClient.java:57)
        at com.aliyun.oss.common.comm.ServiceClient.sendRequestImpl(ServiceClient.java:191)
        at com.aliyun.oss.common.comm.ServiceClient.sendRequest(ServiceClient.java:151)
        at com.aliyun.oss.internal.OSSOperation.send(OSSOperation.java:71)
        at com.aliyun.oss.internal.OSSObjectOperation.putObject(OSSObjectOperation.java:92)
        at com.aliyun.oss.OSSClient.putObject(OSSClient.java:394)
        at osscs1.OSSPutObjectSample.uploadFile(OSSPutObjectSample.java:82)
        at osscs1.OSSPutObjectSample.main(OSSPutObjectSample.java:46)

问题原因

  • 客户端和OSS不在同一地域的内网中,所以不能用内网的Endpoint,需要用公网的Endpoint。

  • 客户端跟OSS虽然在同一个地域,但是客户端可能有一些特殊限制,比如端口没开放等。

解决方案

建议在客户端上使用ping命令测试公网的Endpoint地址,以及使用telnet命令测试80/443端口是否正常。如果测试正常,可对OSS Java SDK进行如下配置。

private static final String OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com/";
OSSClient client = new OSSClient(OSS_ENDPOINT,ACCESS_ID, ACCESS_KEY);
说明

本文以杭州地域为例,使用http://oss-cn-hangzhou.aliyuncs.com/地址。其他地域,请根据具体情况修改地址。更多信息,请参见访问域名和数据中心

适用于

  • 对象存储 OSS