Как скопировать объект с помощью s3-transfer-manager?
Я работаю над java-проектом, где использую службы s3, поэтому я использую aws-sdk версии 2.17 и диспетчер передачи 2.17 для выполнения таких операций, как копирование, загрузка, загрузка. Моя проблема в том, что я хочу показать ход процесса копирования, поэтому я использую API копирования диспетчера передачи, но он не работает. Вот фрагмент кода.
public static void test(){
try {
String sAccessKey="XXXXX";
String sSecretKey="XXXXXX";
AwsBasicCredentials awsCreds = AwsBasicCredentials.create(
sAccessKey,
sSecretKey);
AwsCredentialsProvider awsCredentialsProvider = StaticCredentialsProvider.create(awsCreds);
S3TransferManager s3TransferManager = S3TransferManager
.builder()
.s3ClientConfiguration(S3ClientConfiguration.builder()
.region(Region.EU_WEST_1)
.credentialsProvider(awsCredentialsProvider).build())
.build();
Copy copy = s3TransferManager.copy(c -> c
.copyObjectRequest(r -> r
.sourceBucket("source_bucket")
.sourceKey("test.json")
.destinationBucket("destination_bucket")
.destinationKey("test.json"))
.overrideConfiguration(o -> o.addListener( LoggingTransferListener.create()))
);
CompletedCopy completedCopy = copy.completionFuture().join();
System.out.println(copy.progress().snapshot().transferSizeInBytes());
System.out.println(copy.progress().snapshot().bytesTransferred());
} catch (S3Exception e) {
throw e;
}
}
Когда я выполняю вышеупомянутый код, я получаю сообщение об ошибке: -
software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 301, Request ID: 6Y67D05YMB2VPCTZ, Extended Request ID: djU25dflTcZ0NExxqZQDXQ9SSwcQaMvvMAGrcfRDbDhvzgaws3twq1arytQ/Qd14kXNDpWYdbgA=)
Пожалуйста, предложите.