七牛云文件上传接口的使用
上传前的准备工作
调用七牛云的上传接口之前,您需要确认以下要求都已完成:
- 登录 七牛云开发者平台。
- 创建一个 空间(Bucket)。根据您的需求在不同的存储区域创建空间, 存储区域可参考 七牛云存储区域
注意: 如果您是体验用户,新建存储空间时,会遇到 “新建存储空间失败,请先实名认证”的提示信息。
七牛云的上传有两种模式
表单上传
分片上传
我这里以表单上传为例,首先您可自行阅读七牛云官方 表单上传文档
调用接口之前需要先准备好上传凭证(就是调用接口时的upload_token),具体可参考 上传凭证
生成凭证之前需要先构造上传策略,可参考 上传策略 ,可根据您自己的需求自行构造上传策略
七牛云官方提供了各语言的SDK包,您可以下载使用,也可以根据官方上传凭证文档自行组装上传凭证,如下算法使用的是PHP
生成上传凭证算法
写算法之前您需要准备您的 SecretKey 和您的 AccessKey
首先进入 管理控制台 ,点击头像,点击密钥管理 就可以看到您的 SecretKey 和您的 AccessKey
# 构造上传策略
$putPolicy = array('scope' => 'reduwang','deadline' => strtotime( '+1 hour' ),'saveKey' => date( 'YmdHis' ),'insertOnly' => 1
);# 将上传策略序列化成为JSON并进行Base64 编码,得到待签名字符串
$putPolicy = base64_encode( json_encode( $putPolicy ) );$SecretKey = 您的SecretKey,类型(string)$AccessKey = 您的AccessKey ,类型(string)# 生成待签名字符串
$sign = hash_hmac( 'sha1' , $putPolicy , $SecretKey , true );# 转码
$encodedSign = base64_encode( $sign );# 生成上传token
$token = $AccessKey . ':' . $encodedSign . ':' . $putPolicy;
上传接口地址可参考上面提到的 存储区域
前端代码示例:
# 将刚才生成的上传凭证放入隐藏域
<input type="hidden" id="uploadToken" value="<?php echo $token; ?>"># 上传文件按钮(id或者name建议设置为file,不然可能会出问题)
<input name="file" type="file" id="file" style='width:300px' size='30' class='pubinputs' /># js代码,这里使用的是layui上传文件中的接口上传
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/layui.js"></script>
<script type="text/javascript">
layui.use('upload', function() {var upload = layui.upload;var token = $("#uploadToken").val();upload.render({elem: '#file',url: 'http://upload.qiniup.com' // 文件上传接口地址,根据您的空间所在的区域选择不同的接口地址,method: 'get' //可选项。HTTP类型,默认post,headers: {enctype: 'multipart/form-data'},data: {action:'http://upload.qiniup.com',token:token} //可选项。额外的参数,如:{id: 123, abc: 'xxx'},done: function(res){// console.log( '上传成功' + res );if( res.key != '' ){return alert( '上传成功,文件名为:' + res.key );}},error: function(index,upload){//当上传失败时,你可以生成一个“重新上传”的按钮,点击该按钮时,执行 upload() 方法即可实现重新上传// console.log( '上传失败:' + upload )return alert( '上传失败,刷新页面后重试' );}});});
</script>
代码并非无问题,有待继续完善。感谢您的阅读!
七牛云文件上传接口的使用相关推荐
- 小程序对七牛云文件上传删除批量删除生成token封装无需服务器一个小程序搞定
微信小程序获取token接入七牛云上传删除批量删除图片封装亲测可用 小程序获取七牛云uptoken删除文件封装 在研究官方文档后自己用小程序生成uptoken上传凭证封装,其他资料都说要服务器我又没钱 ...
- android上传文件php,PHP编写安卓文件上传接口
为了快速满足安卓客户端或跨域文件上传接口,现在用PHP写个可以文件上传类.可通过安卓客户端或者其他域名的网站上传窗口,可以把文件上传指定的服务器中,下面是详细代码.//主方法获取上传文件 public ...
- FastDFS的配置、部署与API使用解读(8)FastDFS多种文件上传接口详解(转)
1.StorageClient与StorageClient1的区别 相信使用happy_fish的FastDFS的童鞋们,一定都熟悉StorageClient了,或者你熟悉的是StorageClien ...
- springmvc图片文件上传接口
springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller;import java.awt.image.Buffere ...
- layui文件上传接口后端具体实现SpringMVC
做课程设计时候,用到了layui文件上传接口,参考官方文档给出的响应接口文档: {"code": 0,"msg": "","dat ...
- Golang 调用http 文件上传接口 进行上传文件
远程服务器有一个文件上传接口,文件用于保存到服务器本地,用go如何调用此接口将文件上传至服务器? 首先,文件上传请求方 与 接收方 要协调工作(解析等工作) 接收方: func UploadFileT ...
- SpringBoot实现文件上传接口
作者平台: | CSDN:blog.csdn.net/qq_41153943 | 掘金:juejin.cn/user/651387- | 知乎:www.zhihu.com/people/1024- | ...
- Jmeter(五)excel文件上传接口压力测试问题
前言 大家好 我是Mikasa 已经时隔两个多月没更新过blog了,因为刚换公司一直在学习业务知识及忙于生活中一些琐碎的事情,没什么时间研究学习 本章内容的话也是在公司中遇到的一个问题,需要对批量文件 ...
- 【微服务|openfeign】使用openfeign远程调用文件上传接口
文章目录 服务提供者-文件上传接口 FeignClient 消费者-通过FeignClient调用文件上传接口 服务提供者-文件上传接口 @PostMapping("/saveFile&qu ...
最新文章
- 实现二叉树的先序遍历、中序遍历、后序遍历
- ajax获取单选按钮的值_【自学C#】|| 笔记 31 控件,按钮
- 产品开发专业认证_食品招生季食品科学与工程专业介绍
- 网络安全-Internet安全体系结构
- python编程单词排序_Python实现对文件进行单词划分并去重排序操作示例
- [转载] python中的for循环对象和循环退出
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka
- Subversion for Windows 相关工具
- Atitit MATLAB 图像处理 经典书籍attilax总结
- 54部经典国外动画片---送给70-80年代的朋友
- 微信小程序数据懒加载
- PaddleOCR手写体训练摸索
- 金融分析python和r语言比较_金融领域R语言对比python
- 惯性导航(IMU)误差分析
- 用Haskell写的卡普雷尔卡kaprekar黑洞小程序
- 【转载】不死族资深玩家的三年心得
- 云服务器打不开,为什么打不开云服务器失败怎么回事
- Photoshop安装问题:106 无法写入注册表
- 开尔文夹接线图解_接地线连接线夹安装方法是什么?
- 武汉理工计算机考研852,武汉理工852经验帖
热门文章
- 天津成考计算机高分技巧,成考数学不可触碰的雷区和得分技巧,非常实用
- JXL(JXLS)的使用:java中操作Excel的解决方案之一。
- 学生动漫网页设计模板下载 火影忍者大学生HTML网页制作作品 简单漫画网页设计成品 dreamweaver学生网站模板
- 饿了么四次技术进化的曲折路,记访谈张雪峰
- geth客户端:Looking for peers
- 企业qq邮箱,网易邮箱账号注册,这些企业邮箱哪个好?
- rtx3080显卡怎么样 rtx3080功耗
- aspose将word文档转为html内容
- 程序员因太过耿直, 致苹果官网出现bug, 网友直呼: 太可爱了
- Win10如何在任务栏时钟区显示秒针