如何关闭AWS S3客户端连接

时间:2014-11-11 14:07:06

标签: java amazon-web-services

关闭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;
}

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:4)

在文档中有一个名为' shutdown'

的可选方法
  

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

例如

.fsx

答案 2 :(得分:0)

根据官方文档(“客户端生命周期”部分):https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html

Service clients in the SDK are thread-safe and, for best performance, you should treat them as long-lived objects. Each client has its own connection pool resource. Explicitly shut down clients when they are no longer needed to avoid resource leaks.

请考虑一下,如果它存在于服务中,则可以在应用运行时将其保持打开状态。如果始终创建新的客户端,则应将其关闭以避免内存泄漏。 在这种情况下,您应该运行s3Client.shutdown();