首页 > 解决方案 > 将图像文件从 AWS S3 对象转换为 Base64 时出错

问题描述

我正在使用以下代码将 S3 对象解析为 Base64 字符串。

InputStream is = s3Object.getObjectContent().getDelegateStream();
byte[] bytes = IOUtils.toByteArray(is);
String base64Data = Base64.getEncoder().encodeToString(bytes); //Java Util lib.

此代码适用于文本和 pdf 文件。但是在转换图像文件时,我收到错误 MIME type not supported。

我还尝试使用 AWS 和 Apache Commons Base64 lib。它仍然无法正常工作。

Base64.encodeAsString(bytes) //AWS
Base64.encodeBase64String(bytes) //Apache Commons

标签: javaspringamazon-web-servicesspring-bootamazon-s3

解决方案


GetObjectRequest request = GetObjectRequest.builder()
            .bucket("my_bucket_name")
            .key("four.bmp")
            .build();
    try {
        byte[] objectResponse = s3Client.getObject(request, ResponseTransformer.toBytes())
                .asByteArray();
        return Base64.getEncoder().encodeToString(objectResponse);
    } catch (NoSuchKeyException e) {
        log.error(e.getMessage());
        throw e;
    }

推荐阅读