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. centos 安装mbstring(mb_strlen )

    部署onethink框架的时候,检测到mb_strlen未支持, 在网上检索一大堆教程,最多的就是先检测一下需要安装的安装包 yum search php 楼主小白满心欢喜地输入,一对照返回的结果, ...

  2. 学习JavaScript第六天

    文章目录 1. JavaScript 中的垃圾回收机制(GC) 1.1 垃圾回收相关概念 ① 什么是垃圾 ② 什么是垃圾回收 ③ 垃圾没有及时回收的后果 ④ JavaScript 垃圾回收的常见算法 ...

  3. Sealos 基础教程:Sealos Devbox 的架构原理解析

    今天这篇文章咱们来聊一聊 Sealos Devbox 到底是怎么设计的,据说隔壁老奶奶最喜欢看这种有技术深度的文章了. Devbox 返璞归真,把开发者的开发精力放到开发中去,真正做到了摈弃复杂的 C ...

  4. 多进程可以共享内存,那么多进程是否可以共享显存呢?(CPU->内存,GPU->显存)

    多进程可以共享内存,那么多进程是否可以共享显存呢?(CPU->内存,GPU->显存) 答案:不能.多进程可以共享内存,但是多进程不能共享显存(NVIDIA GPU 显存不能被多进程共享). ...

  5. 《JVM第9课》垃圾回收器

    先来看一张图,串行代表两个垃圾回收器按顺序执行,并行代表同时执行.STW代表工作线程暂停,Stop The World的意思. 垃圾回收器 执行顺序 执行方式 作用区域 使用算法 说明 Serial ...

  6. 居然都到 7.x版本了!!!雷池 WAF 社区版 7.x 的体验记录

    雷池 WAF 简介 雷池 WAF,英文名 "SafeLine",由长亭科技出品的一款 Web 应用防火墙,可以保护 Web 服务不受黑客攻击,早年就以 "智能语义分析技术 ...

  7. Spring的IOC容器创建过程深入剖析

    前言 本次对于Spring的IOC容器的创建过程是基于其源码进行研究分析的,主要涉及BeanFactory的创建过程,Bean的解析与注册过程,Bean实例化的过程以及诸如ClassPathXmlAp ...

  8. vue之vuex使用

    如图所示,它是一个程序里面的状态管理模式,它是集中式存储所有组件的状态的小仓库,并且保持我们存储的状态以一种可以预测的方式发生变化.对于可以预测,现在我不多做说明,相信在看完这篇文章之后,你就会有自己 ...

  9. 压缩工具之upx

    在golang项目中, 最终运行的是打包好的二进制文件,如何才能让这个文件尽可能的小呢? 1.编译阶段的参数处理 go build使用的是静态编译,会将程序的依赖一起打包,这样一来编译得到的可执行文件 ...

  10. Django+SimpleUI

    1.安装 pip install django-simpleui -i https://pypi.tuna.tsinghua.edu.cn/simple 2.修改配置文件 # 修改project的se ...