关闭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;
}
答案 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();