OnPrem IIS上传并提供图像

问题描述

我必须在内部构建一些功能,该功能允许用户通过api上传文件

  1. 存储这些文件的最佳方法是什么。目前,我们使用sql,而我想远离它
  2. 生成静态网址以将其提供给客户端的最佳方法是什么?我基本上想要一个

解决方法

如果图像名称不是问题,则在文件上传后我将调用NewGuid.Guid()重命名并保存在SQL的查找表中。

保证为您提供唯一的文件名。您可以创建查找表,并可以在SQL中存储原始文件名,用户特定信息等。

如果要考虑对大文件集进行存储和迭代,请使用日期/时间创建文件夹映射,这样文件夹中的图像较少。像/ app / 2020/11/02 /

,

如果要上传和存储图像,最好的方法是将上传的文件名存储在数据库中,并使用所需的静态用途来检索它。

如果要使用ashx,则必须在iis中添加句柄:

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
</modules>
<handlers>
    <add name="ImageUploadHandler" verb="*" path="ImageUploadHandler.ashx" type="JetAdz.WebApi.ImageUploadHandler,JetAdz.WebApi,Version=1.0.0.0,Culture=neutral" />
</handlers>