【发布时间】:2023-04-03 20:28:01
【问题描述】:
我正在尝试使用 Spring Boot 创建一个新的微服务,用于一次上传和下载多个文件。
根据某些条件,这些文件(PDF、XML、ZIP、TIFF、..)可以存储在 S3 之类的存储或其他类型的存储中。此微服务必须实现逻辑以了解这些文件的位置,将它们临时下载到本地文件夹中,然后将它们返回给客户端应用程序。
目标是向客户端应用程序隐藏恢复逻辑和文件所在的存储类型。
我的每个业务实体都有多个关联的文件,因此对于上传 API,我正在考虑使用多部分请求将同一实体的文件一起发送。
我想对下载 API 做同样的事情:给定实体的 ID,API 必须返回与其关联的所有文件。
我不知道实现这一目标的最佳方法是什么。
我已经看到有一个多部分响应,但我不知道它是否可靠。
另一个想法是将文件下载到临时共享文件夹中,并将它们所在的路径列表发送回客户端应用程序。
另一种方法是始终下载本地(非共享)文件夹中的文件,并将用于获取文件的 URL 列表发送回客户端应用程序。
你怎么看?还有其他选择吗?
感谢您的帮助!
【问题讨论】:
-
我可能会压缩相关文件并将它们作为一个存档发回。
-
我也考虑过这个解决方案,但我认为它会大大降低 API 的性能。
标签: java spring-boot amazon-s3 microservices