У меня есть Java-код, который загружает изображение на S3:
MappingJackson2HttpMessageConverter jsonHttpMessageConverter = new MappingJackson2HttpMessageConverter();
jsonHttpMessageConverter.getObjectMapper().configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
jsonHttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.IMAGE_JPEG, MediaType.IMAGE_JPEG));
restTemplate.getMessageConverters().add(jsonHttpMessageConverter);
try {
//File f = multipartToFile(filedata);
//uri = new URI(url.toString());
File f = new File("<SOMEDIRECTORY>/<SOMEIMAGE>.jpeg");
headers.setContentType(MediaType.IMAGE_JPEG);
HttpEntity<File> entity = new HttpEntity<>(f, headers);
System.out.println("FILE " + f.getAbsolutePath());
System.out.println("FILE " + f.getTotalSpace());
System.out.println("FILE " + f.getPath());
System.out.println("FILE " + f.getName());
ResponseEntity<String> response = restTemplate.exchange(new URI(url.toString()), HttpMethod.PUT, entity, String.class);
result = response.getBody();
} catch (URISyntaxException e) {
e.printStackTrace();
}
Я установил файл для некоторого изображения на моем локальном компьютере. Код работает и загружает изображение в S3, но изображение представляет собой белый квадрат, и когда я загружаю изображение, оно говорит:
Error interpreting JPEG image file (Not a JPEG file: starts with 0x22 0x2f)
Я видел этот пост, но не совсем понимаю решение s3.upload() работает, но загружает испорченное изображение
Вот также мой журнал http запросов:
2019-11-12 10:47:59.493 INFO 12885 --- [nio-8080-exec-8] a.s.RequestResponseLoggingInterceptor : ===========================request begin================================================
2019-11-12 10:47:59.493 INFO 12885 --- [nio-8080-exec-8] a.s.RequestResponseLoggingInterceptor : URI : https://<SOMEURL>/<SOMEIMAGEFILE>?AWSAccessKeyId=<ACCESKEY>&Content-Type=image%2Fjpeg&Expires=1573527779&Signature=<SIGNATURE>&x-amz-security-token=IQoJb3JpZ2luX2VjEOP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0xIkcwRQIhAMUE%2FnlJvn%2BpUsBHozJ9gH2uyzYxwb4fIj4e0y7Hm%2FY3AiBWEYwKECXCszLmBa%2FxL3IJBAdzKNJMy7RduKLw%2BIMt1yrqAQj8%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAEaDDY2NDkzNTQ0NTIzOCIMbn7Ysc1VRzdQzo4VKr4BHd8rZuMMaKGedMFPIVvgmdlKEXRAW%2F5X%2FNa0915dIul95kOZMlV37xXeaKk<CUT>
2019-11-12 10:47:59.493 INFO 12885 --- [nio-8080-exec-8] a.s.RequestResponseLoggingInterceptor : Method : PUT
2019-11-12 10:47:59.493 INFO 12885 --- [nio-8080-exec-8] a.s.RequestResponseLoggingInterceptor : Headers : [Accept:"text/plain, application/json, application/cbor, application/*+json, image/jpeg, */*", Content-Type:"image/jpeg", Content-Length:"29"]
2019-11-12 10:47:59.494 INFO 12885 --- [nio-8080-exec-8] a.s.RequestResponseLoggingInterceptor : ==========================request end================================================
Что-нибудь, что я пропустил?