在使用OSS上传文件时,报了网络连接错误Connection pool shut down[阿里云oss]

具体错误显示为
Request processing failed: com.aliyun.oss.ClientException: 网络连接错误,详细信息:Connection pool shut down

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 对于这个错误,请尝试如下解决措施:

    1. 检查您阿里云对象存储服务(OSS)的相关设置,确保已经启用连接池,并且已经正确设置连接池的最大连接数和超时时间等参数。
    2. 检查网络连接,确保网络状况良好,如果没有网络问题,请尝试关闭防火墙和代理设置。
    3. 检查您的访问密钥是否有效,以及是否有足够的权限访问OSS。
    4. 检查OSS服务的错误日志,看是否有关于网络连接的错误记录。
    5. 更新您的SDK版本,确保使用最新版本的SDK,以避免兼容性问题。
  2. 这个错误通常是由于网络连接问题导致的。你可以尝试以下方法解决这个问题:

    1. 检查你的网络连接是否正常,确保你的设备可以访问互联网。
    2. 如果你在使用代理服务器,请检查代理服务器的设置是否正确。
    3. 尝试增加OSS客户端的超时时间,以便给网络连接更多的时间来完成请求。你可以在创建OSS客户端时设置ClientConfiguration参数,例如:
    import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.aliyun.oss.model.PutObjectRequest;import com.aliyun.oss.common.utils.BinaryUtil;public class OSSUploadDemo {    public static void main(String[] args) {        String endpoint = "your-endpoint";        String accessKeyId = "your-access-key-id";        String accessKeySecret = "your-access-key-secret";        String bucketName = "your-bucket-name";        String objectName = "your-object-name";        String filePath = "your-file-path";        // 设置超时时间为60秒        int connectTimeout = 60;        int readTimeout = 60;        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret, new ClientConfiguration(connectTimeout, readTimeout));        try {            // 上传文件            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));            ossClient.putObject(putObjectRequest);            System.out.println("文件上传成功");        } catch (Exception e) {            System.out.println("文件上传失败: " + e.getMessage());        } finally {            // 关闭OSS客户端            ossClient.shutdown();        }    }}
  3. Connection pool shut down
    Caused by: java.lang.IllegalStateException: Connection pool shut down
    at org.apache.http.util.Asserts.check(Asserts.java:34)
    at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:184)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:251)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:175)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at com.aliyun.oss.common.comm.DefaultServiceClient.sendRequestCore(DefaultServiceClient.java:124)
    at com.aliyun.oss.common.comm.ServiceClient.sendRequestImpl(ServiceClient.java:133)
    … 8 more
    错误原因

    调用ossClient.shutdown()接口后,还继续通过ossClient发送请求。

    解决方法

    请检查调用逻辑,确保调用了ossClient.shutdown()接口之后,不再通过ossClient发送请求。

    https://help.aliyun.com/zh/oss/developer-reference/faq-3?spm=a2c4g.11186623.0.i32

  4. 这个问题看起来像是在尝试使用 Alibaba Cloud Object Storage Service (OSS) 时遇到了连接池关闭的情况。通常情况下,出现这种情况的原因可能是 OSS Client 关闭之后又再次被使用。
    为了解决这个问题,您可以尝试以下几种方法:

    1. 将 OSS Client 的实例声明为单例,并在程序启动时初始化一次,避免多次创建 OSS Client 实例。
    2. 在使用 OSS Client 之前检查它的状态,确保它处于活动状态。
    3. 如果您正在使用第三方库或者框架,建议您检查一下相关文档,看看是否有关于 OSS Client 使用的特殊要求。
  5. 这是阿里云 OSS SDK 报错,可能是由于网络连接问题或 SDK 内部异常引起的,请检查网络状况以及 SDK 是否存在问题。您还可以尝试使用其它 SDK 或工具来上传文件,或者检查本地计算机的防火墙设置。