Передать zip архив на YandexCloud S3
После выполнения запроса получаю JSON
:
{
"presigned_data": {
"url": "https://storage.yandexcloud.net/ai-research-from-client-test-test",
"fields": {
"acl": "private",
"Content-Type": "binary/octet-stream",
"key": "mykey/test",
"x-amz-algorithm": "AWS4-HMAC-SHA256",
"x-amz-credential": "mycretential/20240321/ru-central1/s3/aws4_request",
"x-amz-date": "20240321T051254Z",
"policy": "test",
"x-amz-signature": "mysignature"
}
},
"task_id": "a205ee43-4671-4679-ad11-7f0608bb7a02"
}
Пытаюсь передать zip архив следующим образом:
public class S3Uploader {
private RestTemplate restTemplate = new RestTemplate();
public void uploadFileToS3(String filePath) throws Exception {
byte[] fileBytes = Files.readAllBytes(new File(filePath).toPath());
String presignedUrl = "https://storage.yandexcloud.net/ai-research-from-client-test-test";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.set("x-amz-algorithm", "AWS4-HMAC-SHA256");
headers.set("x-amz-credential", "mycretential/20240321/ru-central1/s3/aws4_request");
headers.set("x-amz-date", "20240321T051254Z");
headers.set("x-amz-signature", "mysignature");
headers.set("acl", "private");
headers.set("Content-Type", "binary/octet-stream");
headers.set("key", "mykey/test");
headers.set("policy", "test");
HttpEntity<byte[]> requestEntity = new HttpEntity<>(fileBytes, headers);
ResponseEntity<String> response = restTemplate.exchange(presignedUrl, HttpMethod.PUT, requestEntity, String.class);
if (response.getStatusCode().is2xxSuccessful()) {
System.out.println("Файл успешно загружен в S3 на Yandex Cloud.");
} else {
System.out.println("Ошибка загрузки файла в S3 на Yandex Cloud: " + response.getStatusCode());
}
}
public void test() {
String filePath = "C:\\Users\\User\\Desktop\\tmp\\test.zip";
try {
uploadFileToS3(filePath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Но получаю ошибку:
org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: "
MalformedXML
The XML you provided was not well-formed or did not validate against our published schema./ai-research-from-client-test-testb1612fff996c2022"
Подскажите пожалуйста что делаю не так? Может кто-то сталкивался с такой проблемой.