1.服务端(主要用于生成上传,删除,下载等凭证)

引入Qiniu的Get包。包就叫Qiniu。

//上传凭证

       //上传凭证:其余凭证类似的写法
     public string UpLoadToken()
{
//密钥
Mac mac = new Mac("AK", "SK");
// 存储空间名
string Bucket = "wximagess";
//上传凭证
PutPolicy putPolicy = new PutPolicy();
//凭证有效时间
putPolicy.SetExpires(7200);
//存储空间名 。覆盖上传要写成 putPolicy.Scope = Bucket:key; key是文件名
putPolicy.Scope = Bucket;
//上传的内容定时删除(自定义)30天
putPolicy.DeleteAfterDays = 30;
string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
return token;
}

 服务端直接下载

  ·  public string Down()
{
Mac mac = new Mac("AK", "SK");
//下载的地址  
string domain = "http://rkp2te65d.bkt.clouddn.com";
       //下载的文件名
string key = "测试上传2";
       //下载外链 3600外链有效期
string privateUrl = DownloadManager.CreatePrivateUrl(mac, domain, key, 3600);
Console.WriteLine(privateUrl);
return privateUrl;
}

服务端直接上传

       public string UpLoad()
{
//密钥
Mac mac = new Mac("AK", "SK");
//文件名
string key = "测试上传2";
// 本地文件路径
string filePath = "C:\\素材\\图片\\6a04b428gy1fyrlfhjaz1g207i07ijy0.gif";
// 存储空间名
string Bucket = "XXX";
       //上传凭证
PutPolicy putPolicy = new PutPolicy();
putPolicy.SetExpires(7200);
putPolicy.Scope = Bucket;
       //自定义返回结果,可不设置,也可根据官网自定义,这里是官网给的自定义例子
putPolicy.ReturnBody = "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"fsiz\":$(fsize),\"bucket\":\"$(bucket)\",\"name\":\"$(x:fname)\"}";
putPolicy.DeleteAfterDays = 30;
       //凭证
string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
       
Config config = new Config();
// 空间对应的机房.这里官网给的并不全,新出的空间地域无法直接引用,需要自己根据官网的地址New出新的机房、这里是华东浙江2
config.Zone = new Qiniu.Storage.Zone
{
ApiHost = "api.qiniuapi.com",
CdnUpHosts = new string[1] { "upload-cn-east-2.qiniup.com" },
RsHost = "rs-cn-east-2.qiniuapi.com",
RsfHost = "rsf-cn-east-2.qiniuapi.com",
IovipHost = "iovip-cn-east-2.qiniuio.com",
SrcUpHosts = new string[1] { "up-cn-east-2.qiniup.com" },
};
// 是否使用https域名 https收费,我不使用
config.UseHttps = false;
// 上传是否使用cdn加速
config.UseCdnDomains = true;
       //表单上传。好像百兆以下都可以,超过百兆可以分片上传,图片使用表单上传就好,免费空间只有10G。上传图片还可,视频肯定不够用
FormUploader target = new FormUploader(config);
HttpResult result = target.UploadFile(filePath, key, token, null);
        
return "form upload result: " + result.ToString();
}

2.Ajax请求上传图片

function A() {
$.ajax({
//请求服务端拿到上传凭证
url: "http://xxxx",
type: "get",
success: function (res) {
var token = res;
// localData是图片的base64数据,你可以用任何方式得到你图片的Base64编码
var localData = "XXXXX";
//七牛云只需要Base64后面的内容,因此把多余的前缀删除
localData = localData.replace("data:image/jgp;base64", "");
//开始上传
$.ajax({
url: "http://upload-cn-east-2.qiniup.com/putb64/-1",
type: "post",
beforeSend(request) {
request.setRequestHeader("Content-Type", "application/octet-stream");
request.setRequestHeader("Authorization", "UpToken " + token);
},
data: localData,
success: function (res) {
//上传成功后把文件名key存到自己的数据库里
var imageKey = res.key;
$.ajax({
url: "http://XXXX/UploadImage",
type: "post",
data: imageKey,
headers: {
"Content-Type": "application/json"
}
,
success: function (res) {
alert(res);
}
})
}
})
}
})
}

        

七牛云API的使用包括Ajax上传功能及凭证生成的更多相关文章

  1. 七牛云存储Python SDK使用教程 - 上传策略详解

    文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k  ...

  2. 【PHP】Thinkphp 七牛云API对接

    访问一个网站,图片的流量占的比例是非常高的!在你的服务器硬盘上,图片占的容量也是非常高的. 如果要搞一个图片非常多,用户量又很庞大的网站,那么,得花多少钱烧在服务器上? 这种时候,当然要用第三方图片存 ...

  3. 七牛云存储 qiniu 域名 回收 文件上传 备份 下载 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. php利用七牛云的对象存储完成图片上传-高效管理图片

    在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...

  5. 初试“七牛云”--零基础运用七牛云配合UEditor实现图片的上传和浏览(.NET篇)

    (注册和建立存储空间就不介绍了,网上一把一把的资料,自己试着点点也能明白) 作为一个成熟的菜鸟,如果遇到一个新问题,第一步当然是先百度一下... 看了N个关于七牛云的使用的帖子,表示还是蒙圈的,看懂了 ...

  6. 如何利用”七牛云”在UEditor实现图片的上传和浏览

    在学习之前,我参考了朋友些的一篇关于这个功能实现的文章,非常不错.大家可以参考:http://www.cnblogs.com/John-Marnoon/p/5818528.html#3501846 里 ...

  7. 动手实操(一):如何用七牛云 API 实现相片地图?

    实操玩家: 在苹果手机上,我们只要打开定位服务,拍照后便能在相簿中找到地图,地图上显示着在各地拍摄的相片.网站上这种显示方式也并不少见,例如 Flickr.即将关闭的 Panoramio 等. 作为地 ...

  8. angular封装七牛云图片上传,解决同一页面多个上传按钮分别上传

    step1:引入文件 引入Plupload *该SDK上传功能集于Plupload插件封装,所以需要下载Plupload; plupload.dev.js 引入qiniu.js为了简便,当时直接从官网 ...

  9. 七牛云存储的 Javascript Web 前端文件上传

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...

  10. 七牛云覆盖上传 php

    使用七牛云过程中遇到了需要上传覆盖的情况,最终解决,分享给大家. 七牛云sdk上传示例中是这样写的 <?php require_once 'path_to_sdk/vendor/autoload ...

随机推荐

  1. Kubernetes CNI 插件选型和应用场景探讨

    作者:马伟,青云科技容器顾问,云原生爱好者,目前专注于云原生技术,云原生领域技术栈涉及 Kubernetes.KubeSphere.KubeKey 等. 本文介绍容器环境常见网络应用场景及对应场景的 ...

  2. 听说过Paas、Saas和Iaas,那你听说过Apaas吗?

    互联网行业就喜欢搞一些单词的缩写,在云计算行业,前者有SaaS.PaaS.IaaS,最近两三年APaaS的概念又开始被关注.APaaS到底是什么意思,有什么用,与前三者的区别是什么?本文将对这些问题进 ...

  3. linux不常用命令

    1.查看进程的内存资源占用 [root@abdi1 elasticsearch]# pidstat -r -p 1791 1 Linux 3.10.0-514.el7.x86_64 (abdi1) 0 ...

  4. OpenAI使用AI编程给出了数数问题的解决方案 —— 如何解决ChatGPT不会数数的问题

    总所周知的一个问题,那就是ChatGPT不会数数,不过今天突然发现OpenAI给出了一个神奇的解决方法,那就是AI编程. 问题案例如下: The text provided will be analy ...

  5. Linux Shell_read

    介绍 从控制台输入 基本语法 read [选项] 参数 常用选项 |选项|功能| |-|-| |-p|指定读取值时的提示符| |-t|指定取值时等待的时间(秒),如果没有在指定时间输入,就不再等待了| ...

  6. SSH通过本地开端口打远程隧道

    ssh -R 你想让别人连得端口:带外IP:22 root@内网跳板机 -p内网跳板机端口 例如: ssh -R 8888:172.22.200.1:22 root@10.11.11.11 -p202 ...

  7. 2023NOIP A层联测9 T3 天竺葵

    2023NOIP A层联测9 T3 天竺葵 题面及数据范围 Ps:连接为accoderOJ. 看题大概是一个最长上升子序列的带权版本,于是想到 dp. 设 \(dp[i][j]\) 为到第 \(i\) ...

  8. 2023NOIP A层联测31 T4 民主投票

    2023NOIP A层联测31 T4 民主投票 思维好题. 思路 首先可以设 \(s\) 每个人最多获得的票数,一开始所有点都把自己的票投给自己父亲. 如果一个点的票数超过 \(s\) 了,那么这个点 ...

  9. pycharm之远程开发

    转载:https://amos-x.com/index.php/amos/archives/pycharm-remote/ 前言 远程开发什么意思? 远程开发就是用本地的个人电脑进行代码编写开发,但是 ...

  10. Vue3 组合式API

    1.入口 创建实例时,配置setup方法,然后其内部书写组合式API代码,通过组合式API生产的数据和返回,需要暴漏出去才能给HTML使用 <script> //组合式(解构赋值) con ...