Я пытаюсь создать назначенный AWS URL-адрес с содержанием MD5. Ссылка генерировать, но когда я использую его для загрузки контента, который он терпит неудачу с HTTP 403. ошибкаJava AWS s3: Как установить и загрузить контент с предварительно подписанным адресом Md5
Java кода для генерации presigned URL, как показано ниже:
GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, key, httpMethod);
byte[] resultByte = DigestUtils.md5(/*byte array*/);
String streamMD5 = new String(java.util.Base64.getEncoder().encode(resultByte));
generatePresignedUrlRequest.setContentMd5(streamMD5);
s3Client.generatePresignedUrl(generatePresignedUrlRequest);
Java код для загрузки данных с использованием предварительно подписана url:
HttpURLConnection connection;
try {
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("PUT");
OutputStream output = connection.getOutputStream();
output.write(getImage());
output.flush();
assertEquals(OK, connection.getResponseCode());
} catch (IOException e) {
LOGGER.info("Exception: {}", e);
}
Я не уверен, что нужно добавить в код загрузки, чтобы заставить его работать.