Почему значения MD5 в AWS SDK версии 2.31.16 отличаются от предыдущих версий?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему значения MD5 в AWS SDK версии 2.31.16 отличаются от предыдущих версий?

Сообщение Anonymous »

У меня есть проект, который использует Software.amazon.awssdk Зависимость для управления (копирование, перемещение, удаление) контента в ведрах AWS. Я не уверен, какая версия библиотеки изначально использовалась, поскольку файл Gradle только указал этот < /p>

Код: Выделить всё

implementation ('software.amazon.awssdk:s3')
< /code>
Это метод, который проект использует для копирования объекта в ведро. S3Client 
имеет Class Software.amazon.awssdk.services.s3 . Он использует значение MD5 файла, чтобы убедиться, что копия завершена без повреждения. < /P>

Код: Выделить всё

public String putS3Object(S3Client s3Client, String bucketName, String key, String md5Checksum,
String contnent) {
PutObjectRequest metadataPutRequest = PutObjectRequest.builder()
.bucket(bucketName)
.key(key)
.contentMD5(md5Checksum)
.build();
byte[] bytes = org.apache.commons.codec.binary.Base64.decodeBase64(contnent);
PutObjectResponse putObjectResponse = s3Client.putObject(metadataPutRequest, RequestBody.fromBytes(bytes));
return putObjectResponse.eTag();
}
< /code>
Метаданные рассчитываются с помощью этого метода < /p>

public static String generateFileChecksum(Path path) {
try (var inputStream = Files.newInputStream(path)) {
return Base64.encodeBase64String(DigestUtils.md5(inputStream));
} catch (IOException e) {
throw new IllegalStateException("Failure computing checksum for file "+ path.toFile().getAbsolutePath(), e);
}
}
Весь этот код работал нормально ранее. Я не уверен, почему, и я не уверен, как рефактор моего кода, чтобы учесть изменения. Как рассматривается расчет MD5 в последней библиотеке?

Подробнее здесь: https://stackoverflow.com/questions/795 ... ous-versio

Вернуться в «JAVA»