java - 将 PDF/图片保存到 Kubernetes configmap 并在 springboot 应用程序中检索
问题描述
我需要将 pdf 存储在 kubernetes configmap 中,然后在 springboot 应用程序中检索它以进行进一步处理。我使用 pdf 创建了一个 configmap,使用
oc create configmap testpdf --from-file=datafile.pdf
. 现在我有了带有 pdf 的 Base64 编码数据的 configmap,我已将其安装为卷安装。另外,我经历过,当我尝试访问该配置映射时,它会自动从 Base64 解码回字节流(如果我错了,请纠正我)。现在在我的 springboot 应用程序中使用检索 configmap 数据。
@Value(${datafile.pdf})
byte[] pdfdata;
public ResponseEntity<byte[]> retrievePDF() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
headers.set("Content-Disposition", "inline; filename=\"" + "terms_conditions.pdf\"");
headers.setContentLength(pdfdata.length);
return new ResponseEntity<>(pdfdata, headers, HttpStatus.OK);
}
现在,当我点击控制器时,我得到一个空白的白色 pdf,尽管保存在 configmap 中的 pdf 非常好。configmap 中的 Base64 编码值也是正确的(我也检查过使用 Base64 在线转换为 pdf)。
请求帮助。在过去的一周里,我陷入了困境。
解决方案
尝试编写这样的方法:
byte[] pdfData = ...
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
headers.setContentDispositionFormData("terms_conditions.pdf", "terms_conditions.pdf");
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
ResponseEntity<byte[]> response = new ResponseEntity<>(bytes, headers, HttpStatus.OK);
return response;
如果您的 pdfData 数组真正代表您的 PDF,它应该可以工作。
推荐阅读
- javascript - 如何减少 switch 语法的迭代
- postgresql - 重启后 Postgres 不会监听 Docker 主机 IP 地址,直到 Postgres 重启
- node.js - 无法使用节点 App Engine 和 TypeOrm 连接到 Google Cloud SQL
- node.js - 是否可以在 Sequelize 迁移中定义默认值?
- visual-studio-code - 在 Chrome 中打开 VS Code 实时服务器
- python - 来自带有 NaN 的 pandas 数据框的 seaborn 热图
- sql - 内连接与第二个表的一列的总和
- macos - 在我的 Root 上找到一个文件不知道它是什么?
- python - MechanicalSoup 在没有按钮的情况下点击链接
- django - Django 全文搜索优化 - Postgres