![](/img/trans.png)
[英]How should I handle “java.net.SocketException: Connection reset” in multithread AWS S3 file upload?
[英]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.