最近在用百度云的文件存储Bos 和百度云的加速CDN。

参考了一下官方的web直传实战,一共介绍了好几种方法,但是文档都过于朦胧了。自己就翻译了一下Php的Sdk 源码,整理了下一年百度云bos的最简单的直传方式。

我这里用到的开发软件环境如下:

1.ThinkPhp5.1版本的

2.webuploader上传插件

现在我们就一步一步实现,bos的最简单的直传方式。

一:设置Bos的跨域。

如下图,例如我们要用的的域名是“https://video.baidu.com”,那么我们就在这里添加规则,加入就可以了

二:Thinkphp5.1.23后端代码

1、配置config文件

我们在config里面新建一个文件,名称叫:sdk.php,然后填入自己的配置如下

2、生成签名和policy

我们在index模块的controller中,新建一个类叫Bce.php

/*** 百度云BCE操作* Class Bce* @package app\v1\controller*/
class Bce
{public function token(){//获取配置信息$bceConf = Config::get('sdk.bce');//生成当前时间戳$expiration = date("Y-m-d\TH:i:s\Z", time());//生成文件名称$fileName = 'video/' . time() .'_' . unique();//生成policy的配置$policyConf = ['expiration' => $expiration,'conditions' => [//要上传到的bucket['bucket' => $bceConf['video_bucket']],//要存为的文件名称['key' => $fileName]]];//将policy先json序列化后再base64$policy = base64_encode(json_encode($policyConf));//生成签名验证信息$signature = hash_hmac('sha256', $policy, $bceConf['sk']);//返回签名好的信息return array('accessKey' => $bceConf['ak'],'policy' => $policy,'signature' => $signature,'key' => $fileName);}
}

上面的代码就可以返回bos上传时候需要的签名了,接下来。我们来写前端的页面

三:前端页面直传

Html

html代码部分,可以参考webuploader官网案例

http://fex.baidu.com/webuploader/getting-started.html#%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0

如下:

<div id="uploader-demo"><!--用来存放item--><div id="fileList" class="uploader-list"></div><div id="filePicker">选择图片</div>
</div>

Javascript

<script src="webuploader/webuploader.min.js"></script>
<script type="text/javascript">var tokenData;//获取签名的tokenfunction getToken() {$.ajax({url: "{:url('index/bce/token')}",dataType: "json",type: 'post',data: {},success: function (data) {if (data.code != 10000) {tokenData = data;console.log('---uploadBeforeSend has data----')}}});}getToken();// 初始化Web Uploadervar uploader = WebUploader.create({// 选完文件后,是否自动上传。auto: true,// swf文件路径swf: '__JS__/webuploader/Uploader.swf',// 文件接收服务端,设置成自己的bucket域名。server: 'https://*.gz.bcebos.com',// 选择文件的按钮。可选。// 内部根据当前运行是创建,可能是input元素,也可能是flash.pick: '#filePicker',// 只允许选择视频文件。accept: {title: 'Videos',extensions: 'mp4,avi,mov,mkv',mimeTypes: 'video/*'},//只允许单个上传fileNumLimit: 1,//最大100MfileSingleSizeLimit: 100 * 1024 * 1024,// 不压缩!resize: false});uploader.on("uploadStart", function (file) {//如果没有获取到签名,说明没有登录上去,跳转到自己的登录页面if (tokenData == undefined) {window.location.href = "{:url('index/user/login')}"}uploader.options.formData = tokenData});// 文件上传过程中创建进度条实时显示。uploader.on('uploadProgress', function (file, percentage) {});// 文件上传成功,给item添加成功class, 用样式标记上传成功。uploader.on('uploadSuccess', function (file, ret) {console.log(ret)});//不管成功或者失败,文件上传完成时触发uploader.on('uploadComplete', function (file) {uploader.reset();})// 文件上传失败,显示上传出错。uploader.on('uploadError', function (file, ret) {alert('文件上传失败,请稍后重试');});/*** 验证文件格式以及文件大小*/uploader.on("error", function (type) {if (type == "Q_TYPE_DENIED") {return alert("请上传mp4、avi、mov、mkv的文件")} else if (type == "F_EXCEED_SIZE") {return alert("文件大小不能超过100M")}});</script>

这样,就可以实现了webuploader插件,直接上传到百度云了。

更多的功能如,断点续传、分片上传,留给大家自己去研究了。

webuploader直接上传文件到百度云BOS中相关推荐

  1. linux上传文件至 百度云

    pip install requests pip install bypy bypy info bypy info 后 终端显示如下: Please visit: https://openapi.ba ...

  2. 使用bypy从ubuntu通过命令行上传文件到百度云

    从新加坡的ubuntu服务器上打包了1个多G的zip,下载到国内82多K每秒,吓死了.然后想到能不能从服务器上传到百度云,再从百度云上下载. 得到大神指点,知道了bypy这个Python包. 首先安装 ...

  3. ubuntu16.04 通过bypy上传文件到百度云

    pip install bypy --user bypy info 访问链接:https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4 ...

  4. python 百度云api_Python使用百度API上传文件到百度网盘代码分享

    # coding:UTF-8 import urllib import urllib2 __author__ = 'Administrator' from poster.encode import m ...

  5. mac SCp上传文件到阿里云服务器centos

    1.mac链接远程阿里云服务器centos命令: ssh -A -p 22 root@ip 2.mac上传文件到阿里云centos: 3.阿里云服务器weapps下文件删除命令: 4.上传文件相关 m ...

  6. java 上传文件到服务器_java上传文件到OSS云服务器(二)

    上篇文章中已经把接口端和service业务层写了,这次就把OSS上传文件的工具类补上. 一.首先配置好OSS服务器各项节点,这是在springboot中appliaction.yml配置文件中的写法. ...

  7. 微信小程序直接上传文件到阿里云OSS组件封装

    微信小程序直接上传文件到OSS 1. 封装公共方法 在根目录utils目录新建一个upload文件夹: // utils/upload/base64.jsvar base64EncodeChars = ...

  8. java上传文件至阿里云oss工具类

    第一步:引入oss maven坐标 <dependency><groupId>com.aliyun.oss</groupId><artifactId>a ...

  9. 上传文件到阿里云linux服务器

    上传文件到阿里云linux服务器 安装Putty软件(用来连接阿里云服务器的一款软件,里面有用来上传文件到服务器的可执行文件) 参考以下网址: https://help.aliyun.com/docu ...

  10. Android(安卓)上传文件到阿里云点播,阿里云点播转码

    Android(安卓)上传文件到阿里云点播,阿里云点播转码 文章目录 Android(安卓)上传文件到阿里云点播,阿里云点播转码 一:登录阿里云点播平台配置添加转码模板组 1:需要什么参数,可自行填写 ...

最新文章

  1. 推荐一个分布式JVM监控工具,非常实用!
  2. MyBatis常见面试题汇总
  3. python怎么玩pdf_如何使用Python玩转PDF各种骚操作?
  4. python form_Python中form的使用
  5. 01-复杂度1 最大子列和问题(剑指offer和PAT)
  6. centos安装cmake
  7. Multisim卸载后重新安装不上解决方案
  8. 计算机系统结构层次划分,网络的体系结构及其划分所遵循的原则
  9. 数据库课程设计:利用python+MySQL+pyqt5设计一个带UI界面的书店管理系统
  10. Flurry analytics SDK集成步骤及功能简介
  11. win10下安装华为Atals USB虚拟网卡驱动
  12. “隔代教育的成功之道”-新浪教育专家宋少卫做客西单图书大厦
  13. K-means,K-means++方法详解-机器学习分类问题常见算法
  14. 【iOS-cocos2d-X 游戏开发之二】【必看篇】总结阐述Cocos2d-X与Cocos2d-iphone区别;
  15. 怎么给图片加上红圈,红框,红箭头标重点等?还有添加文字
  16. 追觅、小狗、戴森吸尘器对比测评,让你了解哪款最好用
  17. 视频分析的“新革命”——久凌视频分析产品
  18. 2022年西式面点师(初级)培训试题及模拟考试
  19. RaSa2.5.x配置之二:管道组件(Pipeline Components)
  20. python图像处理之skimage

热门文章

  1. 怎么搭配丝袜优雅不低俗?
  2. hdu 5285 wyh2000 and pupil 二分图染色发判定,求最大匹配
  3. linux 域名判断 跳转,Nginx判断不同的域名指向不同的root路径实例
  4. 网站备案各个管局的审核时间多久?
  5. 海康USB摄像头----MV-CAO13-21UM工业摄像头的调用---python实现
  6. anconda各个版本下载
  7. 心有猛虎,细嗅蔷薇。—第二十六天
  8. 苹果html 闪退,iPhone6 App闪退的解决办法 掌握这4点苹果App不再闪退
  9. 计算机usb接口不工作原理,电脑usb接口不能用,详细教您电脑usb接口不能用怎么办...
  10. 【无标题】PHP小皮中出现拒绝访问(使用密码:YES)