Это решение для тех, кто использует Java и библиотеку Java S3, предоставляемую Amazon.Если вы используете com.amazonaws.services.s3.AmazonS3
, вы можете использовать запрос GetObjectMetadataRequest
, который позволяет запрашивать длину объекта.
Библиотеки, которые вы должны использовать:
<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.511</version>
</dependency>
Импорт:
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;
И код, необходимый для получения длины содержимого:
GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest(bucketName, fileName);
final ObjectMetadata objectMetadata = s3Client.getObjectMetadata(metadataRequest);
long contentLength = objectMetadata.getContentLength();
Прежде чем вы сможете выполнить приведенный выше код, вам нужно будет построить клиент S3.Вот пример кода для этого:
AWSCredentials credentials = new BasicAWSCredentials(
accessKey,
secretKey
);
s3Client = AmazonS3ClientBuilder.standard()
.withRegion(clientRegion)
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.build();