七牛云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 ...
随机推荐
- KubeSphere 社区双周报|2024.05.09-05.23
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- 初探AI之got-ocr2.0大模型本地部署与遇到的各种坑处理
一.环境搭建 1.安装cuda,本人使用的是12.1版本,下载地址:https://developer.nvidia.com/cuda-12-1-1-download-archive 2.安装cond ...
- 基础控件(Button,Edittext,ImageView,ProgressBar,ToolBar,AlertDialog,PopupWindow)
Button 触发事件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...
- Unreal RecastNavigation 开源项目详解
0 前言 Recastnavigation是一个游戏AI导航库,像Unity,UE引擎中都集成了这个开源项目, HALO中使用的也是这个开源库.导航最重要的就是为NPC寻路,以及其他的寻路需求. 需要 ...
- MarkDown用法学习笔记
标题: 用 '#'标识,可以到从1到6级标题设置,有多少个'#'符号就对应多少级标题 粗体: 用''标识,如果两边只有一个''标识是斜体,如果两有2个这符号标题是加粗,如果有3个这符号标识是斜体和加粗 ...
- MoeCTF2024--Crypto--Week1&Week2
MOECTF (CRYPTO) Week1: 1.入门指北 题目: from Crypto.Util.number import bytes_to_long, getPrime from secret ...
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
二.Spring Security默认认证流程及其优缺点 1.Spring Security默认认证流程总结 四.Spring Boot集成Spring Security之认证流程详细介绍了认证流程, ...
- 不容忽视的PCB测试点,关键时刻可以避免批量事故哦!
PCB测试点是啥子?请看下图: 如果你曾经用过NOKIA手机,每次你打开后盖换电池的时候,每次看到的那两排圆形的点--就是PCB测试点,or you can call it Test Poi ...
- P5524 Ynoi2012 NOIP2015 充满了希望
P5524 Ynoi2012 NOIP2015 充满了希望 数组开大见祖宗. 思路 不难发现只有询问才会产生贡献,而询问的值来自于距离它最近的且能覆盖这个询问的点的覆盖操作. 可以每个询问操作保存一个 ...
- RL 基础 | 如何复现 PPO,以及一些踩坑经历
最近在复现 PPO 跑 MiniGrid,记录一下- 这里跑的环境是 Empty-5x5 和 8x8,都是简单环境,主要验证 PPO 实现是否正确. 01 Proximal policy Optimi ...