百度开放云 BOS Uploader
百度开放云 BOS Uploader
bce-bos-uploader 是基于 bce-sdk-js 开发的一个 ui 组件,易用性更好。
DEMO地址是:http://leeight.github.io/bce-bos-uploader/
支持的浏览器
http://caniuse.com/#feat=fileapi
IE6,7,8,9, IE10+, Firefox/Chrome/Opera 最新版
如何使用
bower install bce-bos-uploader
写一个最简单的页面:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>bce-bos-uploader simple demo</title>
<script src="./bower_components/jquery/dist/jquery.min.js"></script>
<script src="./bower_components/bce-bos-uploader/bce-bos-uploader.bundle.js"></script>
</head>
<body>
<input type="file" id="file"
data-multi_selection="true"
data-bos_bucket="baidubce"
data-uptoken_url="http://127.0.0.1:1337/ack" />
<script>new baidubce.bos.Uploader('#file');</script>
</body>
</html>
关于 uptoken_url 应该如何实现,以及如何设置过 Bucket 的 CORS 属性,在以前的文档里面有说明,这里就不赘述了。
当然,也可以去掉 html tag 里面的 data 属性,直接用JS的方式来初始化:
<input type="file" id="file" />
<script>
var uploader = new baidubce.bos.Uploader({
browse_button: '#file',
bos_bucket: 'baidubce',
multi_selection: true,
uptoken_url: 'http://127.0.0.1:1337/ack'
});
</script>
支持的配置参数
名称 | 是否必填 | 默认值 | 说明 |
---|---|---|---|
bos_bucket | Y | 无 | 需要上传到的Bucket |
uptoken_url | Y | 无 | 用来进行服务端签名的URL,需要支持JSONP |
browse_button | Y | 无 | 需要初始化的<input type="file"/>
|
bos_endpoint | N | http://bos.bj.baidubce.com | BOS服务器的地址 |
bos_credentials | N | {} | 如果没有设置uptoken_url 的话,必须有这个配置才可以工作 |
multi_selection | N | false | 是否可以选择多个文件 |
max_retries | N | 0 | 如果上传文件失败之后,支持的重试次数。默认不重试 |
auto_start | N | false | 选择文件之后,是否自动上传 |
max_file_size | N | 100M | 可以选择的最大文件,超过这个值之后,会被忽略掉 |
bos_multipart_min_size | N | 10M | 超过这个值之后,采用分片上传的策略。如果想让所有的文件都采用分片上传,把这个值设置为0即可 |
chunk_size | N | 4M | 分片上传的时候,每个分片的大小(如果没有切换到分片上传的策略,这个值没意义) |
支持的事件
在初始化 uploader 的时候,可以通过设置 init 来传递一些 回掉函数,然后 uploader 在合适的时机,会调用这些回掉函数,然后传递必要的参数。例如:
var uploader = new baidubce.bos.Uploader({
init: {
PostInit: function () {
// uploader 初始化完毕之后,调用这个函数
},
FileFiltered: function (_, file) {
// 如果文件因为某些原因被过滤了,调用这个函数
},
FilesAdded: function (_, files) {
// 当文件被加入到队列里面,调用这个函数
},
BeforeUpload: function (_, file) {
// 当某个文件开始上传的时候,调用这个函数
},
UploadProgress: function (_, file, progress, event) {
// 文件的上传进度
},
Key: function(_, file) {
// 可以设置需要保存的文件路径
},
FileUploaded: function (_, file, info) {
// 文件上传成功之后,调用这个函数
},
UploadPartProgress: function (_, file, progress, event) {
// 分片上传的时候,单个分片的上传进度
},
Error: function (_, error, file) {
// 如果上传的过程中出错了,调用这个函数
},
UploadComplete: function () {
// 队列里面的文件上传结束了,调用这个函数
}
}
});
需要注意的时候,所以回掉函数里面的一个参数,暂时都是 null,因此上面的例子中用 _ 代替,后续可能会升级
对外提供的接口
start()
当 auto_start 设置为 false 的时候,需要手工调用 start
来开启上传的工作。
stop()
调用 stop 之后,会终止对文件队列的处理。需要注意的是,不是立即停止上传,而是等到当前的文件处理结束(成功/失败)之后,才会停下来。
百度开放云 BOS Uploader的更多相关文章
- 百度网盘,前几天刚从百度云改名过来,百度云这个名字给之前的百度开放云(同步盘用户比较小众)good
作者:黑郁金香链接:http://www.zhihu.com/question/51803053/answer/127562835来源:知乎著作权归作者所有,转载请联系作者获得授权. 在8月网盘大面积 ...
- NB-IOT模块 M5310-A接入百度开放云IOT Hub MQTT
目录 1.登陆百度开放云,在产品服务中选择IOT HUB 2 2.选择 创建计费套餐,目前1百万条/每月是免费的 2 3.点击管理控制台进入项目列表 4 4. 点击创建项目,项目类型选择数据型 4 5 ...
- 使用git自动将子工程发布到百度开放云上
我的项目中包含多个子工程,如web工程.python工程等.我在项目的根目录下建立了git管理,因此如果使用git push只能把整个项目推送上去,但我只想推送web工程目录.因此,编写了cmd脚本如 ...
- 百度开放云java+tomcat部署web项目-小皇帝詹姆斯
加入部署 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...
- 使用百度云 BOS 和 C# SDK 开发数据存储
Ø 简介 本文主要介绍如何使用百度云的 C# SDK 操作 BOS(Baidu Object Storage/百度对象存储),以及常见问题和解决办法.本文将以以下几点展开学习: 1. 基本介绍 ...
- 运用百度开放平台接口根据ip地址获取位置
使用百度开放平台接口根据ip地址获取位置 今天无意间发现在百度开放平台接口,就把一段代码拿了下来,有需要的可以试试看:http://opendata.baidu.com/api.php?query=5 ...
- 百度开放平台连接MySQL数据库
在百度开放平台创建了MySQL数据库后只知道数据库名称,可以通过下面的方法进行连接: public function connect(){ $_server = getenv('HTTP_BAE_EN ...
- 【云计算】IBM开放云架构
IBM 的开放云架构 通过改变业务和社会运行的方式,云计算开启了丰富的创新途径.开发人员现在正将记录系统与参与性系统相结合,一种新的基于云的应用程序风格正在出现:交互系统.这些应用程序要可持续发展,云 ...
- 利用百度智能云结合Python体验图像识别(转载来自qylruirui)
https://blog.csdn.net/qylruirui/article/details/94992917 利用百度智能云结合Python体验图像识别只要注册了百度账号就可以轻松体验百度智能云中 ...
随机推荐
- Python:GUI库tkinter(二)
学习自: Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) - 洪卫 - 博客园 Tkinter简明教程 - 知乎 TkDocs_官方文档 一个Tkinter库较为全面的总结,很 ...
- dependencies与devDependencies中应该放哪些依赖
网上一般的解释都是,开发环境用devDependencies,生产环境用dependencies,说的很简明,但是这里有个问题是,哪些包需要放到devDependencies中,哪些包需要放到depe ...
- C#控制打印机打印
一.引用BarcodeStandard.dll #region BarcodeStandard.dll /* * * 使用说明 需要通过NuGet进行安装BarcodeLib.dll,必不可少 */ ...
- python解释器下载与安装与pychorm下载与安装
python的下载地址: (不推荐使用最新版) 下载地址:https://www.python.org/downloads/windows/对应版本:Python 3.6.8 - Dec. 24, 2 ...
- Docker - 安装&测试
一.什么是Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中 ...
- Linux 磁盘inode字节数占满的问题
查看ext系列文件系统的信息 #dumpe2fs /dev/sdc1 Inode count: 65536 inode号数量 Block count: 262144 块数量 Reserved bloc ...
- 微信小程序结合 tp实现秒杀
一:建表 1:用户表 2:订单表 3:收货地址 4:秒杀的商品表: 二: 微信后台方法 1 /** 2 * 秒杀接口 3 */ 4 public function seckill(Request $r ...
- thinkphp 用户登录记录日记
1.设计数据库表名,字段 2,建立模型 <?php namespace app\login\model; use think\Model; class LoginLon extends Mode ...
- tp 5 三级联动查询(自写)
思路: 1.定义路由 2.查询顶级分类(pid=0)发送至制图 3.循环展示 4.给顶级分类下拉框绑定内容改变事件(JS:onchange.JQ:change) 5.获取到选中的option的valu ...
- LGP4841题解
无向联通图计数板子 首先,这个太难了,先让我们来求一个简单的: 无向图计数. 一共 \(\frac {n \times (n+1)} 2\) 条可能存在的边,枚举一条边是否存在,就有 \(2^{\fr ...