繁体   English   中英

如何关闭 AWS S3 客户端连接

[英]How do I close an AWS S3 client connection

关闭 aws s3 客户端连接的协议是什么?

@Override
public boolean connect() {

    if (connected)
        return false;
    else
        s3Client = new AmazonS3Client(credentials);
    return true;
}

@Override
public boolean diconnect() {
    // what should take place here? 
    return false;
}

您不需要关闭“连接”,因为在使用 AmazonS3Client 时不存在与 S3 的连续连接。

AWS java SDK 将 REST 请求发送到 S3,其中 REST 是无状态的,对于每个 REST 请求,它将使用用户凭据信息进行签名,因此它不需要长连接(例如会话之类的东西)。

在文档中有一个可选的方法叫做“ shutdown

关闭此客户端对象,释放任何可能保持打开状态的资源。 这是一个可选方法,调用者不会调用它,但是如果他们想显式释放任何打开的资源,可以调用它。 客户端关闭后,不应再使用它来发出任何请求。

例如

@Override
public boolean disconnect() {
    s3Client.shutdown()
    return false;
}

根据官方文档

SDK 中的服务客户端是线程安全的,为了获得最佳性能,您应该将它们视为长期存在的对象。 每个客户端都有自己的连接池资源。 当不再需要客户端时显式关闭客户端以避免资源泄漏。

考虑一下,如果它存在于服务中,那么在应用程序运行时将其保持打开状态可能很好。 如果您一直在创建新客户端,您应该关闭它们以避免内存泄漏。 在这种情况下,您应该运行s3Client.shutdown();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM