【发布时间】:2020-04-28 20:00:58
【问题描述】:
我不确定是否再次询问过这个问题,但在docs 中我看到了如何为 MVC 项目启用静态文件授权。
我正在构建一个 Blazor WASM AspNet 托管站点,该站点将充当图片库网站,人们可以在其中上传图片。
要求是添加授权,以便用户只能看到他拥有的图像。
这已经实现了,但问题是上传的图像在后端服务器上保存为静态文件,在wwwroot 下,默认情况下是公开的。
我尝试使用另一种方法将图像作为byte[] 直接上传到MSSQL,但我认为将图像存储在数据库中不是一个好主意。
我还尝试从 API 上的静态文件中读取字节并将它们作为base64 编码字符串返回给客户端,但这对于大图像也不是一个好方法。
我认为唯一合适的方法是将图像保存为后端的静态文件,将指向它们的链接保存在数据库中并以某种方式将文件公开给授权用户?
这可能吗?
【问题讨论】:
-
是什么阻止您将文件存储在 Web 服务器上的不同目录中?除了wwwroot之外的东西?是的,如果文件很小,您可以将它们存储在数据库中,或者您使用不同的文件存储服务(例如 blob 存储)并为每个用户提供一个容器。
-
@MichaC 如果不公开,我如何将它们作为静态文件提供?例如,为了能够访问图像,应将其保存在公共可用 URL
http://www.example.com/images/image1.jpg中。如果images/image1.jpg不是公开的,则不会显示图像。还是我错过了什么? -
该示例在您链接的 docs 文档中。您指向文件位置并从控制器方法返回一个 File IActionResult。
标签: c# asp.net-core asp.net-core-webapi blazor-client-side