Как написать код для просмотра изображения S3 Bucket Spring загрузочного API - PullRequest
1 голос
/ 27 апреля 2020

Я пишу код для загрузки

@GetMapping(value= "/download/{fileName}")
public ResponseEntity<ByteArrayResource> downloadFile(@PathVariable String fileName) {
    final byte[] data = amazonClient.downloadFile(fileName);
    final ByteArrayResource resource = new ByteArrayResource(data);
    return ResponseEntity
            .ok()
            .contentLength(data.length)
            .header("Content-type", "application/octet-stream")
            .header("Content-disposition", "attachment; filename=\"" + fileName + "\"")
            .body(resource);
}

и метод обслуживания для этого: -

    public byte[] downloadFile(final String fileName) {
        byte[] content = null;
        logger.info("Downloading an object with key= " + fileName);
        final S3Object s3Object = s3client.getObject(bucketName, fileName);
        final S3ObjectInputStream stream = s3Object.getObjectContent();
        try {
            content = IOUtils.toByteArray(stream);
            logger.info("File downloaded successfully.");
            s3Object.close();
        } catch(final IOException ex) {
            logger.info("IO Error Message= " + ex.getMessage());
        }
        return content;
    }

, но я хочу кодировать только для просмотра, не для загрузки.

1 Ответ

0 голосов
/ 27 апреля 2020

Вы можете попробовать этот способ ...

AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());        
S3Object object = s3Client.getObject(new GetObjectRequest(bucketName, key));
InputStream objectData = object.getObjectContent();
BufferedImage bf = ImageIO.read(objectData);

, используя javax.imageio

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...