Ash*_*i K 6 java amazon-s3 amazon-web-services
我试图使用Amazon S3 JAVA sdk获取文件大小(内容长度).
public Long getObjectSize(AmazonS3Client amazonS3Client, String bucket, String key)
throws IOException {
Long size = null;
S3Object object = null;
try {
object = amazonS3Client.getObject(bucket, key);
size = object.getObjectMetadata().getContentLength();
} finally {
if (object != null) {
//object.close();
1. This results in 50 calls (connection pool size) post that I start getting connection pool errors.
2. If this line is uncommented it takes hell lot of time to make calls.
}
}
return size;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*k B 11
我猜你的实际问题是什么,但我认为你可以通过做类似的事情来减少代码并消除创建s3Object的需要:
public Long getObjectSize(AmazonS3Client amazonS3Client, String bucket, String key)
throws IOException {
return amazonS3Client.getObjectMetadata(bucket, key).getContentLength();
}
Run Code Online (Sandbox Code Playgroud)
这应该消除了调用object.close()你似乎遇到问题的需要.
对于 Amazon S3 Java SDK v2,请尝试如下操作:
HeadObjectRequest headObjectRequest =
HeadObjectRequest.builder()
.bucket(bucket)
.key(key)
.build();
HeadObjectResponse headObjectResponse =
s3Client.headObject(headObjectRequest);
Long contentLength = headObjectResponse.contentLength();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12136 次 |
| 最近记录: |