java - 将图像文件从 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
解决方案
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;
}
推荐阅读
- javascript - 获取属性或使用 Puppeteer
- scala - Scala单元测试检查布尔值转换
- javascript - 非常简单的 HTML/JavaScript 按钮不起作用
- javascript - 如何使用 JSON.stringify 获取变量并将值传递给 API
- reporting-services - 动态格式化货币列
- c# - 如果在 C# 中未在指定时间内完成 SQL 查询的执行,如何引发错误?
- python - Torch:为什么这个整理功能比另一个快得多?
- r - 与用于组过滤的 data.frame 相比,data.table 速度较慢
- windows - EXE从控制台启动时Visual Studio C++控制台输出,没有控制台启动时没有控制台
- git - 如何撤销 git "git checkout -m filename" 的命令