Заново загрузите изображение на s3, но оно только белого квадрата или повреждено - PullRequest
0 голосов
/ 12 ноября 2019

У меня есть 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================================================

Что-нибудь, что я пропустил?

...