七牛云API的使用包括Ajax上传功能及凭证生成
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上传功能及凭证生成的更多相关文章
- 七牛云存储Python SDK使用教程 - 上传策略详解
文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k ...
- 【PHP】Thinkphp 七牛云API对接
访问一个网站,图片的流量占的比例是非常高的!在你的服务器硬盘上,图片占的容量也是非常高的. 如果要搞一个图片非常多,用户量又很庞大的网站,那么,得花多少钱烧在服务器上? 这种时候,当然要用第三方图片存 ...
- 七牛云存储 qiniu 域名 回收 文件上传 备份 下载 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- php利用七牛云的对象存储完成图片上传-高效管理图片
在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...
- 初试“七牛云”--零基础运用七牛云配合UEditor实现图片的上传和浏览(.NET篇)
(注册和建立存储空间就不介绍了,网上一把一把的资料,自己试着点点也能明白) 作为一个成熟的菜鸟,如果遇到一个新问题,第一步当然是先百度一下... 看了N个关于七牛云的使用的帖子,表示还是蒙圈的,看懂了 ...
- 如何利用”七牛云”在UEditor实现图片的上传和浏览
在学习之前,我参考了朋友些的一篇关于这个功能实现的文章,非常不错.大家可以参考:http://www.cnblogs.com/John-Marnoon/p/5818528.html#3501846 里 ...
- 动手实操(一):如何用七牛云 API 实现相片地图?
实操玩家: 在苹果手机上,我们只要打开定位服务,拍照后便能在相簿中找到地图,地图上显示着在各地拍摄的相片.网站上这种显示方式也并不少见,例如 Flickr.即将关闭的 Panoramio 等. 作为地 ...
- angular封装七牛云图片上传,解决同一页面多个上传按钮分别上传
step1:引入文件 引入Plupload *该SDK上传功能集于Plupload插件封装,所以需要下载Plupload; plupload.dev.js 引入qiniu.js为了简便,当时直接从官网 ...
- 七牛云存储的 Javascript Web 前端文件上传
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...
- 七牛云覆盖上传 php
使用七牛云过程中遇到了需要上传覆盖的情况,最终解决,分享给大家. 七牛云sdk上传示例中是这样写的 <?php require_once 'path_to_sdk/vendor/autoload ...
随机推荐
- 「模拟赛」CSP-S 模拟 11(T2 超详细)
比赛链接 A.玩水 (water) 签到.发现如果要找两条路径的话,能找到的充要条件是存在一个点的上方和左方的字母相同.(即使两条走过的点截然不同的路径也符合,这时终点会成为这个点). 即存在一个位置 ...
- KubeSphere 社区双周报 | 苏州 Meetup 报名开启 | 2023.11.23-12.07
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- 等保测评FAQ
之前写过一篇关于等保测评的相关介绍<一起聊聊等保测评>,发现大家对于等保测评这个还是很关注的,有些人问等保测评这份工工作的,也有些人问关于等保测评一些指导意见的,这篇文章我想把大家的问题来 ...
- 彻底搞懂ScheduledThreadPoolExecutor
前言 项目中经常会遇到一些非分布式的调度任务,需要在未来的某个时刻周期性执行.实现这样的功能,我们有多种方式可以选择: Timer类, jdk1.3引入,不推荐. 它所有任务都是串行执行的,同一时间只 ...
- 科技论文在methodology部分应该使用什么语态?
什么神奇的事情,在计算机领域的论文中,如果没有特殊的必要非要用过去式,那么一律使用一般现在时,十分神奇. 或许在计算机领域论文中这一点比较特殊,也可能是大家都这么用也就这样了. 总结来说,在计算机领域 ...
- 鸿蒙Navigation入门使用
Navigation组件适用于模块内和跨模块的路由切换,通过组件级路由能力实现更加自然流畅的转场体验,并提供多种标题栏样式来呈现更好的标题和内容联动效果.一次开发,多端部署场景下,Navigation ...
- 探索 USB 上网模组,Air780ER 当仁不让
今天探索的是USB上网模组,我推荐的是Air780ER模组,本文从用户实际使用的角度,解答大家对Air780ER最关心的一些问题,内容不深入探究技术细节,更多从选型.应用等非技术维度展开. 一.Air ...
- vagrant 中 php 7.2 升级到 php 7.3
在本地用 vagrant 给 php 7.2 升级到 7.3 的时候,直接修改了 box/config.yml里面 php 版本 然后就 vagrant reload --provision 进行重新 ...
- WordCloudStudio 支持支付宝周期性订阅
我们很高兴地宣布,WordCloudStudio 现已支持通过支付宝 (AliPay) 的周期性订阅支付功能!无论您是需要制作精美的词云图用于演示.社交媒体.教育资源,还是其他创意项目,现在都可以更便 ...
- java swing 学习
JSplitPane固定分割比例和禁止拖动分割条 有知友问JSplitPane的问题,在写代码的时候不想让分割条拖动,结果找不到方法,百度了 居然也找不到... 后来在一个犄角旮旯里发现了 ,, 就 ...