首页 > 解决方案 > 在 API 或微服务文件系统上存储文件

问题描述

我在一个应用程序上工作,该应用程序由

在实现类似文件存储的功能时,为了上传小文件和大文件,我只是假设我会将这些文件存储在微服务的文件系统中,并将路径与元数据一起保存到微服务的数据库中。

因为微服务没有实现任何 Http API 端点,所以我通过我的 API 网关上传文件。但是在意识到将这些文件从 API 传输到微服务以及提供相同的服务需要做多少工作之后,我只是将它们存储在 API 的文件系统中并将路径保存到微服务的数据库中。


这种方法可以吗?

我的 API网关从它自己的文件系统存储和提供文件,这很奇怪吗?如果是这样,我应该在上传时将文件从 API 传输到微服务,即使考虑到文件可能很大 - 还是微服务本身应该实现特定的 API?

我希望这个问题不会被解释为基于意见的-我想知道考虑到前端-api-微服务模式,哪种方法最好,以及是否有任何架构标准可以解决这种情况,以及是否有任何方法有它的陷阱

标签: apiwebfile-uploaduploadmicroservices

解决方案


根据以上评论

API 网关

网关的目的是重定向请求并处理诸如身份验证、日志记录等横切关注点。它不应该做更多的事情。网关必须具有高可用性,网关出现任何问题都意味着您无法访问相关服务。

上传文件

文件上传应由微服务本身处理。您的网关将仅用于传递和获取流。根据您系统的性质,如果您使用云存储,您可以使用“代客钥匙”之类的模式。 https://docs.microsoft.com/en-us/azure/architecture/patterns/valet-key


推荐阅读