七牛 savekey php,七牛云1:客户端直接上传文件
最近因为项目要用到七牛云,所以花了点时间整理了一下学习心得。
使用七牛云,第一步当然就是上传文件了,常见的云存储上传文件流程一般有3种:
用户==>业务服务器(你自己的服务器)==>云存储服务器
用户先把文件提交到你的服务器,然后你再转发给云存储,很明显,这样的方式相当于上传了2遍,势必会造成上传时间延长
用户==>七牛
用户直接把文件上传到七牛云,很明显,这种方式上传速度肯定比第一种快,今天我们主要学习这种上传方式
用户==>七牛==>业务服务器
如果设置了回调,七牛在上传完成后会将少量数据(如文件名)传给业务服务器
整个上传流程业务服务器颁发 上传凭证 给客户端
客户端通过 上传凭证,直接将文件上传到七牛云
七牛云返回上传结果
颁发上传凭证
因为用户要直接把文件上传到你的七牛云存储账户,所以一定要保证安全,否则别有用心的人利用你的七牛云存储他的文件,岂不是要浪费你的流量。
每个七牛用户会有accessKey和secretKey,我们利用七牛的SDK可以很容易的生成上传凭证token,我利用的是PHP版本的,框架用的YII框架。
$accessKey = '******';//换成你自己的
$secretKey = '******';//换成你自己的
$auth = new Auth($accessKey, $secretKey);
$bucket = 'test';// 要上传的七牛存储空间名称
$token= $auth->uploadToken($bucket);//将此token返回给你的用户
$this->_data['token']=$token;
return $this->render('up',$this->_data); //YII框架,将数据传给view
默认token有效期为3600秒,你也可以通过uploadToken()传递参数设置,具体参见SDK
客户端直接上传文件
客户端这边非常简单,通过form表单来上传数据,action不同的七牛云地区不一样,华南区,华北区等,不过不要担心,错误的时候会提示你正确地址是多少。设置一个隐藏字段name=token,值为上一步服务器返回的token
文件选择name设为file
上传之后会返回存储在七牛的文件名称,这样也说明上传成功了
">
上传
上传的更多设置
在第一步生成token的时候,七牛支持更多设置,比如,设置上传成功后返回的数据有哪些,上传成功后跳转的url地址,上传的文件名称等等$accessKey = '******';//换成你自己的
$secretKey = '******';//换成你自己的
$auth = new Auth($accessKey, $secretKey);
$bucket = 'test';// 要上传的七牛存储空间名称
//设置返回的数据内容
$returnBody=[
"key"=>"$(key)", //$(key)是七牛提供的一些魔术变量
"imageInfo"=>"$(imageInfo.width)",
"bucket"=>"$(bucket)",
"myname"=>"liyulin"
];
$policy=[
"returnUrl"=>"http://baidu.com",//设置上传成功后的跳转地址
'saveKey'=>"$(fname)",
'returnBody'=>json_encode($returnBody),
];
$token= $auth->uploadToken($bucket,null,3600,$policy);
$this->_data['token']=$token;
return $this->render('up',$this->_data);
改为AJAX上传
我们一般上传图片,并不是通过提交整个form,而是先把图片通过ajax上传,然后获取图片的地址,并进行预览,因此将上面的form上传改为ajax上传
html代码:
">
上传
jquery代码:var domain=" //改为你的存储域名
$("#submit").on('click',function(){
var formdata=new FormData();
formdata.append('token',$("#token").val());
formdata.append('file',$("#file")[0].files[0]);
$.ajax({
type:'post',
url:'http://up-z0.qiniu.com',
data:formdata,
cache: false,
contentType:false,
processData: false,
dataType:"json",
error: function(request) {
alert(request.status);
},
success: function(data) {
$("#preview img").attr("src",domain+data.key);
}
});
});
七牛 savekey php,七牛云1:客户端直接上传文件相关推荐
- mac上传文件到七牛云,使用qshell上传文件到七牛云
第一步:下载qshell(其实就是命令行,不是什么直接能打开的文件,也不是exe文件) 地址:https://developer.qiniu.com/kodo/tools/1302/qshell 选择 ...
- html5 如何实现客户端验证上传文件的大小
在HTML 5中,现在可以在客户端进行文件上传时的校验了,比如用户选择文件后,可以 马上校验文件的大小和属性等.本文章向码农介绍html5 如何实现客户端验证上传文件的大小,感兴趣的码农可以参考一下. ...
- 如何上传html验证文件大小,html5 实现客户端验证上传文件的大小(简单实例)
在HTML 5中,现在可以在客户端进行文件上传时的校验了,比如用户选择文件后,可以 马上校验文件的大小和属性等.本文章向码农介绍html5 如何实现客户端验证上传文件的大小,感兴趣的码农可以参考一下. ...
- php上传文件到七牛云源码,laravel上传文件到七牛云存储
public function store(Request $request) { $file = $request->file('photo') ; if(!$file->isValid ...
- 七牛云图床php,PHP实现Markdown文章上传到七牛图床的实例内容
在使用 Markdown 编写文章之后,经常需要发布到不同的平台,这里会遇到一个问题,文章的图片需要手动的进行上传,管理起来非常不方便,因此,强烈建议将图片统一上传到图床中,这样的话一篇文章就可以轻松 ...
- java上传视频到七牛云_使用SpringMVC上传视频到七牛云上
最近做项目用到了七牛云存储,就讲一下如何使用springMVC对视频上传到七牛云上. Java SDK依赖的第三方库及其版本如下: 这个是使用maven管理的依赖. 也可以自己手动下载jar包通过这个 ...
- Go语言实战-通过gin上传文件到七牛云OSS
上传到文件到七牛云的两种上传方式: 1. 客户端上传到服务器,服务器再上传到七牛云 2.客户端直接通过ajax上传到七牛云 前者:需要上传到服务器,这个过程需要消耗不少带宽,也给服务器带来不小压力,但 ...
- Python联调七牛云异步上传文件
注:本篇文章参考文献 乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现.-刘悦. 首先需要拥有一个七牛云的账号 七牛云官网:七牛云 | 一站式 ...
- 云存储Java客户端上传文件
什么是云存储 准确来说应该称为对象存储.云存储是比较流行的一种云服务,提供图片.视频等文件的存储服务.具有代表性的产品有:七牛云.阿里云对象存储OSS.又拍云.腾讯云对象存储服务COS. 云存储能做什 ...
最新文章
- 史上最伟大的五位计算机罪犯
- 【Java】练习题:蒙眼过马路
- 信噪比与误码率的计算
- Android开发七 Android中的显示单位
- Linux中Shell的命令替换用法笔记
- 基于事件驱动架构构建微服务第8部分:在应用程序上实现事件溯源
- 面试风云录(01) - 怎样回答这两个问题?
- C BackgroundWorker类详细说明
- 如何快速打好java基础_学习Java课程时如何才能打好基础呢?
- 从css3书写顺序引出来的border-radius参数
- 预处理: 主成分分析和白化
- linux 磁盘检测卡主_在Windows和Linux中找出磁盘分区使用的文件系统,就是这么简单...
- 小甲鱼python【easyGUI】学习笔记
- FPGA经典设计思想
- w7系统桌面没有计算机图标不见了,win7系统桌面图标不见了怎么办?
- html和js制作个人所得税表格,用JS编写个人所得税计算器
- Android日常整理(一)---android返回键、Fragment、android分割线、button图片间距的设置
- c++字符、字符串详解
- Apple ASA归因技术支持
- 考研路上的那些一战二战三战成功与失败的故事系列之十三