zoukankan      html  css  js  c++  java
  • 自定义部署资源服务器

    一、起因

      昨天有个需求需要保存上传的图片和pdf等文件资源,还要提供下载和展示。当时的想法是弄一个资源服务器,把上传的资源都存档到资源服务器上,需要的时候也从资源服务器上获取。

    二、资源服务器:

      标题为什么要加上自定义?因为当时做的时候没有看太多关于这类的资料,想法很简单,所以以下我弄出来的这个资源服务器或许是错误的,但是能够解决我的问题(当然后边也没用我弄得这个资源服务器,原因下边说)。

    资源肯定要放到磁盘上,我的做法如下:

      在服务器的IIS上部署一个站点,该站点的物理路径就是服务器上的一个文件夹(Resouces),没错,上传的资源都要放到这个文件夹里面。这样就可以了,这就是我弄得存储资源的地方,哈哈,美其名曰资源服务器。

    、为啥后来没用这个自定义的资源服务器?

      1、资源随着时间会越来越多,占用的空间会非常大,维护会很麻烦。

      2、最主要的原因是,有阿里云的OSS,为啥不用呢。

    四、下边粘贴一下上传的方法(仅后端)

      前端上传资源的组件有很多,我写了个用于保存上传的资源接口。前端需要传的参数就有两个,一个是上传文件的名称,要包含文件的后缀格式(uploadFile.name),一个是上传文件的base64字符串(uploadFile.raw),下边的这个接口支持所有格式的文件,不管是图片还是word还是PDF。

        public static void UploadPreview(UploadFile uploadFile, out string errorMessage)
            {
                try
                {
                    errorMessage = "";
                    if (!Directory.Exists(Config.ImageResourceServerUrl)) Directory.CreateDirectory(Config.ImageResourceServerUrl);
                    string path = $"{Config.ImageResourceServerUrl}//{ uploadFile.name}";
                    byte[] buffer = Convert.FromBase64String(uploadFile.raw);
                    FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                    fs.Write(buffer, 0, buffer.Length);
                    fs.Flush();
                    buffer = null;
                }
                catch (Exception ex)
                {
                    errorMessage = ex.Message;
                }
            }

    有时间会好好的学习一下服务端的知识,大势所趋。有不对的地方希望提出,共同进步

  • 相关阅读:
    php 使用函数中遇到的坑之----list
    redis info
    Redis查询当前库有多少个 key
    Git怎样撤销一次分支的合并Merge
    JKS转PFX
    js获取当前域名、Url、相对路径和参数以及指定参数
    MySQL触发器更新和插入操作
    MySQL创建触发器的时候报1419错误( 1419
    xml 3 字节的 UTF-8 序列的字节 3 无效
    PostgreSQL的递归查询(with recursive) ,替代oracle 的级联查询connect by
  • 原文地址:https://www.cnblogs.com/qtiger/p/12143667.html
Copyright © 2011-2022 走看看