当前位置: 首页 > 知识库问答 >
问题:

文件存储.NET核心

丁宏浚
2023-03-14
[HttpPost, DisableRequestSizeLimit]
public IActionResult Upload()
{
    try
    {
        var file = Request.Form.Files[0];
        var folderName = Path.Combine("Resources", "Images");
        var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);

        if (file.Length > 0)
        {
            var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
            var fullPath = Path.Combine(pathToSave, fileName);
            var dbPath = Path.Combine(folderName, fileName);

            using (var stream = new FileStream(fullPath, FileMode.Create))
            {
                file.CopyTo(stream);
            }

            return Ok(new { dbPath });
        }
        else
        {
            return BadRequest();
        }
    }
    catch (Exception ex)
    {
        return StatusCode(500, $"Internal server error: {ex}");
    }
}

我想知道,当我们为客户提供新的更新时,是否有丢失这些文件的风险。如果有更好的解决方案,上传文件和获取文件链接之后,与.NET core请告诉我:)

共有1个答案

拓拔曦
2023-03-14

我想知道,当我们为客户提供新的更新时,是否有丢失这些文件的风险

部署应用程序意味着,您将把新的可执行文件(DLL)和存储在git中的其他文件复制到运行旧版本的地方。风险是,您会做错并删除数据目录。

也就是说:您不应该将用户数据与应用程序的可执行文件或其他文件一起保存(例如HTML中使用的图像,...)。如果数据是明确分开的,那么处理(备份、部署等)就会容易得多。

public class StorageOptions {
   public string BasePath {get;set;}
}
 类似资料:
  • 简介 Laravel 提供了一个强大的文件系统抽象,这得益于 Frank de Jonge 强大的 Flysystem 扩展包。Laravel 文件系统集成为使用本地文件系统、Amazon S3 和 Rackspace 云存储提供了简单易用的驱动程序。更棒的是,由于每个系统的 API 保持不变,所以在这些存储选项之间切换是非常简单的。 配置 文件系统的配置文件位于 config/filesyste

  • 厂商标识 标识 厂商 local 本地系统 aliyun-oss 阿里云 OSS 频道标识 标识 描述 public 用于公开图片,例如用户头像,或者不需要付费的任何图片使用 public 作为频道 创建上传任务 /api/v2/storage 请求内容参数: 参数 类型 描述 filename string 必须,文件原始名称(需要带上文件拓展名) hash string 必须,文件的 MD5

  • 文件存储NAS是一个可共享访问,弹性扩展的高性能分布式文件系统,可为公有云上的虚拟机提供共享存储服务。 文件系统 文件系统提供弹性扩展的高性能文件存储服务,可为公有云上的虚拟机提供共享存储服务。 NAS权限组 NAS权限组用于设置指定IP地址或者网段访问文件系统,并给不同的IP地址或网段授予不同的访问权限。

  • 导出 NFS 文件系统 NFS 服务器安装要求安装 nfs-utils 软件包。此软件包提供了使用 NFS 将目录导出到客户端而必需的所有实用程序。用于 NFS 服务器导出的配置文件为 /etc/exports 文件。/etc/exports 文件列出了要通过网络而与客户端主机共享的目录,并且指示哪些主机或网络对导出具有访问权限。 Note 可以不必将导出目录所需要的信息添加到 /etc/expo

  • 问题内容: 每次我的应用程序崩溃时,都不会生成核心转储文件。我记得几天前,它 是 在另一台服务器 上 生成的。我正在使用bash屏幕运行应用程序,如下所示: 如您所见,如果要生成核心转储,则在使用哪个选项很重要,但是当遇到分段错误时,它仍然不会生成。我该如何运作? 问题答案: 确保当前目录(崩溃时可能会更改目录)是可写的。如果服务器调用,则该目录必须是该用户可写的。 同时检查。这可能会将核心转储重

  • 我有一个存储过程叫做 我试图将它们的结果存储在数据表中。 它会导致以下错误: 系统。数据。Odbc。ORA-00900:无效的SQL语句 在ConexionBD.ConnectAndQuery(stringlayername、decimalidelemento、stringidelementostring、stringconexion)。 我的代码: