.Net Core实现将文件上传到七牛云存储

功能:将图片上传到七牛云存储

准备工作

  • 注册七牛账号,提交实名认证(基本上1天内内审核通过)
  • 登录七牛后台->对象存储->新建空间 (基本概念:https://developer.qiniu.com/kodo/manual/3978/the-basic-concept)
  • 新建空间后会有免费域名可以使用。但是:测试域名,限总流量,限单 IP 访问频率,限速,仅供测试使用,不能用于自定义域名的 CNAME。建议还是使用自己的已经ICP备案的域名
  • CDN加速域名(自己的ICP备案的域名)提交后有个处理过程(官方说最多三个小时),处理完成后给你一个CNAME。 如何配置CNAME?
  • 配置好CNAME后,接下来实现编码工作。

编码实现

  • Nuget官方SDK

  • 获取AccessKey,SecretKey。登录七牛管理后台->个人信息->秘钥管理
  • 代码
 1 /// <summary>
 2         /// 实现将文件上传到七牛云
 3         /// </summary>
 4         /// <param name="stream">文件流</param>
 5         /// <param name="fileName">文件名称</param>
 6         /// <returns></returns>
 7         public UploadQiNiuResult UploadImgToQiNiu(byte[] stream, string fileName)
 8         {
 9             Mac mac = new Mac(BlogStatic.QiNiuInfo_AccessKey, BlogStatic.QiNiuInfo_SecretKey);
10             // 上传策略,参见
11             // https://developer.qiniu.com/kodo/manual/put-policy
12             PutPolicy putPolicy = new PutPolicy();
13             // 如果需要设置为"覆盖"上传(如果云端已有同名文件则覆盖),请使用 SCOPE = "BUCKET:KEY"
14             // putPolicy.Scope = bucket + ":" + saveKey;
15             var saveKey = string.Format("BlogImg/{0}/", DateTime.Now.ToString("yyyy/MM/dd")) + fileName;
16             putPolicy.Scope = "blog:" + saveKey;
17             // 上传策略有效期(对应于生成的凭证的有效期)
18             putPolicy.SetExpires(3600);
19             // 上传到云端多少天后自动删除该文件,如果不设置(即保持默认默认)则不删除
20             // putPolicy.DeleteAfterDays = 1;
21             string jstr = putPolicy.ToJsonString();
22             //获取上传凭证
23             var uploadToken = Auth.CreateUploadToken(mac, jstr);
24             UploadManager um = new UploadManager();
25
26             HttpResult result = um.UploadData(stream, saveKey, uploadToken);
27
28             if (result.Code == 200)
29             {
30                 return JsonConvert.DeserializeObject<UploadQiNiuResult>(result.Text);
31             }
32             return null;
33         }
  • UploadQiNiuResult类
  • 1     public class UploadQiNiuResult
    2     {
    3         public string Hash { get; set; }
    4         public string Key { get; set; }
    5     }

引用:

七牛官方文档

时间: 2024-08-13 11:57:51

.Net Core实现将文件上传到七牛云存储的相关文章

Tp3如何实现本地视频文件上传到七牛云

对于七牛云的使用,估计有些刚接触开发的技术人员还不太清楚,那么更不要说如何实现本地视频上传到七牛云转储了,其实这个技术并没有想象中的那么困难,下面就来跟大家详细介绍一下流程: 1.首先我们要先去寻找七牛云的SDK网址,打开后直接下载就行了; 2.下载完成之后我们把它放在tp框架的./ThinkPHP/Extend/Vendor/目录下; 3.完成之后,前期的准备工作就完成了,接下来就是自己上手写代码了: 首先肯定是先在模板部分建立一个form表单: *视频上传: 我们就提交到News控制器里的d

Tp3.1 文件上传到七牛云

TP3.1 中不支持Composer 就无法用composer 安装 下载历史的SDK https://github.com/qiniu/php-sdk/releases/tag/v7.0.8 下载下来放到 Think 目录下的Vendor下 进入代码 HTML的代码 <form id="upload" method='post' action="file" enctype="multipart/form-data"> <inp

如何将ISO文件上传到XenServer本地存储中

如何将ISO文件上传到XenServer本地存储中 从XenServer5.0.0之后ISO文件不能直接拷贝到/opt/xensource/packages/目录下,该目录下只能用于存放Xenserver Tools文件,那当用户要挂载ISO进行虚拟机安装时有什么方法呢?有两种方法: 一.通过CIFS挂载Windows共享文件夹的方式,这种方式操作简单,通过XenCenter的New Storage向导即可完成(操作略),而且当ISO较多且变动频繁时,强力推荐该种方法 二.将ISO文件直接上传到

【PHP原生】动态多文件上传并将路径存储在数据库

动态多文件上传并将路径存储在数据库 1.上传页面index.html <!DOCTYPE html > <html> <head> <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/> <title>多图片上传</title> <script> //全局变量,代表文件域的个数,并用该变量区分文件域的nam

图片上传到七牛云

必须要传一个参数类型为 MultipartFile 的 第一步:引入相关配置文件和工具类并导入依赖: qiniu.properties: qiniu.accessKey=xxxxxxxxxxxxx #公钥 qiniu.secretKey=yyyyyyyyyyyyy #密钥 qiniu.bucket=saas #存储空间名称 qiniu.rtValue=xxxxxxx #域名 公钥密钥在这里找 域名这里找: import com.google.gson.Gson; import com.qiniu

Spring MVC 之文件上传(七)

SpringMVC同样使用了apache的文件上传组件.所以需要引入以下包: apache-commons-fileupload.jar apache-commons-io.jar 在springAnnotation-servlet.xml中配置 1 <!-- 定义文件上传解析器 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.Common

KindEditor图片上传到七牛云

自己做了一个网站,编辑器用的是KindEditor,平时会涉及到KindEditor自带的图片上传,但是服务器用的是虚拟主机,没多少空间,就一直想着把图片放在免费的云存储空间,之前看KindEditor的源码和七牛的SDK看得云里雾里的,网上搜索又没有类似的解决方法,只好继续看源码自己搞了,弄了整整一个晚上,基本实现了,下面说说我的做法: 版本说明: KindEditor版本:4x 七牛SDK:7.x.x 后端脚本:PHP 先看一下七牛给出的表单模板,在这里file和token这两个表单项是必须

文件流数组上传到七牛云

首先要注册七牛云,申请个空间,获得密钥.等东西,引入官方sdk包,然后再开发文档中找到代码copy进去就可以了. 因为非常简单,我就直接弄上代码了. 1 package com.qianmo.foru.bean.request; 2 3 import com.qianmo.core.common.CommonRequest; 4 import org.hibernate.validator.constraints.NotBlank; 5 import org.springframework.we

七牛云的文件上传和下载

1.本篇博客参考网址 https://www.cnblogs.com/xiaoBlog2016/p/9041308.html https://blog.csdn.net/peaceful000/article/details/53171578 https://blog.csdn.net/albertfly/article/details/51499812 2.在pom.xml中添加需要的jar <!--七牛云上传图片服务--> <!-- https://mvnrepository.com