记一次上传文件到七牛云存储的阅历(Plupload & UEditor)(.net)

七牛

设置ACCESS_KEY和SECRET_KEY

Qiniu.Conf.Config.ACCESS_KEY = "ACCESS_KEY";
Qiniu.Conf.Config.SECRET_KEY = "SECRET_KEY";

《记一次上传文件到七牛云存储的阅历(Plupload & UEditor)(.net)》

Plupload&七牛

这个简朴,由于七牛的JS SDK就是运用了Plupload 点击检察官方文档

七牛强烈建议去我们自身的效劳器猎取token,这里我们运用C# SDK里的教程

编写猎取Token的要领

/// <summary>
/// 猎取token
/// <param name="bucket">空间名</param>
/// </summary>
public string GetUpToken(string bucket)
{
    //一般上传,只需要设置上传的空间名就能够了,第二个参数能够设定token逾期时候
    var putPolicy = new PutPolicy(bucket);
    //挪用Token()要领天生上传的Token
    var upToken = putPolicy.Token();
    return upToken;
}

UEditor&七牛

运用UEditor是能够完成客户端直传到七牛的,运用JS SDK重写UEditor的一切上传按钮(参考UEditor官方文档)。

然则太麻烦了,本钱太高,我的项目的瓶颈是在下载而不是在上传,所以我没有完成UEditor直传文件到七牛,而是运用效劳器中转文件流到七牛。

直接上代码:

编写上传要领

/// <summary>
/// 上传
/// </summary>
/// <param name="bucket">空间名</param>
/// <param name="contentStream">流</param>
/// <param name="key">文件名</param>
/// <returns></returns>
public bool Upload(string bucket, Stream contentStream, string key)
{
    var target = new IOClient();
    var extra = new PutExtra();
    var putPolicy = new PutPolicy(bucket, 3600);
    var upToken = putPolicy.Token();
    var ret = target.Put(upToken, key, contentStream, extra);
    return ret.OK;
}

修正UEditor的UploadHandler.cs

在UploadHandler.cs找到以下代码

var savePath = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat);

并在该行下方增加以下代码

try
{
    var key = savePath;//这里运用了UEditor天生的文件名(带途径,能够在ueditor\net\config.json中自定义),也能够自身运用代码天生
    using (var memoryStream = new MemoryStream(uploadFileBytes))
    {
        //1.能够完成你项目自身的一些营业,比方将文件信息存入一个零丁的附件表
        //2.挪用上面的Upload要领
        var bucket = "{你七牛上的空间称号}";
        
        ****.Upload(bucket, memoryStream,key);
    }
    var bucketDomainUrl = "{您七牛上的空间对应的域名,用于下载}";
    Result.Url = bucketDomainUrl + savePath;
    Result.State = UploadState.Success;
}
catch (Exception e)
{
    Result.State = UploadState.FileAccessError;
    Result.ErrorMessage = e.Message;
}

详细代码的细节和架构相干,可参考自身的项目而定,本人运用ABP(ASP.NET Boilerplate),可轻松完成范畴效劳和应用效劳的注入。

    原文作者:chiakiyu
    原文地址: https://segmentfault.com/a/1190000005008809
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞