百度开放云 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的更多相关文章

  1. 百度网盘,前几天刚从百度云改名过来,百度云这个名字给之前的百度开放云(同步盘用户比较小众)good

    作者:黑郁金香链接:http://www.zhihu.com/question/51803053/answer/127562835来源:知乎著作权归作者所有,转载请联系作者获得授权. 在8月网盘大面积 ...

  2. NB-IOT模块 M5310-A接入百度开放云IOT Hub MQTT

    目录 1.登陆百度开放云,在产品服务中选择IOT HUB 2 2.选择 创建计费套餐,目前1百万条/每月是免费的 2 3.点击管理控制台进入项目列表 4 4. 点击创建项目,项目类型选择数据型 4 5 ...

  3. 使用git自动将子工程发布到百度开放云上

    我的项目中包含多个子工程,如web工程.python工程等.我在项目的根目录下建立了git管理,因此如果使用git push只能把整个项目推送上去,但我只想推送web工程目录.因此,编写了cmd脚本如 ...

  4. 百度开放云java+tomcat部署web项目-小皇帝詹姆斯

    加入部署 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...

  5. 使用百度云 BOS 和 C# SDK 开发数据存储

    Ø  简介 本文主要介绍如何使用百度云的 C# SDK 操作 BOS(Baidu Object Storage/百度对象存储),以及常见问题和解决办法.本文将以以下几点展开学习: 1.   基本介绍 ...

  6. 运用百度开放平台接口根据ip地址获取位置

    使用百度开放平台接口根据ip地址获取位置 今天无意间发现在百度开放平台接口,就把一段代码拿了下来,有需要的可以试试看:http://opendata.baidu.com/api.php?query=5 ...

  7. 百度开放平台连接MySQL数据库

    在百度开放平台创建了MySQL数据库后只知道数据库名称,可以通过下面的方法进行连接: public function connect(){ $_server = getenv('HTTP_BAE_EN ...

  8. 【云计算】IBM开放云架构

    IBM 的开放云架构 通过改变业务和社会运行的方式,云计算开启了丰富的创新途径.开发人员现在正将记录系统与参与性系统相结合,一种新的基于云的应用程序风格正在出现:交互系统.这些应用程序要可持续发展,云 ...

  9. 利用百度智能云结合Python体验图像识别(转载来自qylruirui)

    https://blog.csdn.net/qylruirui/article/details/94992917 利用百度智能云结合Python体验图像识别只要注册了百度账号就可以轻松体验百度智能云中 ...

随机推荐

  1. Python:GUI库tkinter(二)

    学习自: Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) - 洪卫 - 博客园 Tkinter简明教程 - 知乎 TkDocs_官方文档 一个Tkinter库较为全面的总结,很 ...

  2. dependencies与devDependencies中应该放哪些依赖

    网上一般的解释都是,开发环境用devDependencies,生产环境用dependencies,说的很简明,但是这里有个问题是,哪些包需要放到devDependencies中,哪些包需要放到depe ...

  3. C#控制打印机打印

    一.引用BarcodeStandard.dll #region BarcodeStandard.dll /* * * 使用说明 需要通过NuGet进行安装BarcodeLib.dll,必不可少 */ ...

  4. python解释器下载与安装与pychorm下载与安装

    python的下载地址: (不推荐使用最新版) 下载地址:https://www.python.org/downloads/windows/对应版本:Python 3.6.8 - Dec. 24, 2 ...

  5. Docker - 安装&测试

    一.什么是Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中 ...

  6. Linux 磁盘inode字节数占满的问题

    查看ext系列文件系统的信息 #dumpe2fs /dev/sdc1 Inode count: 65536 inode号数量 Block count: 262144 块数量 Reserved bloc ...

  7. 微信小程序结合 tp实现秒杀

    一:建表 1:用户表 2:订单表 3:收货地址 4:秒杀的商品表: 二: 微信后台方法 1 /** 2 * 秒杀接口 3 */ 4 public function seckill(Request $r ...

  8. thinkphp 用户登录记录日记

    1.设计数据库表名,字段 2,建立模型 <?php namespace app\login\model; use think\Model; class LoginLon extends Mode ...

  9. tp 5 三级联动查询(自写)

    思路: 1.定义路由 2.查询顶级分类(pid=0)发送至制图 3.循环展示 4.给顶级分类下拉框绑定内容改变事件(JS:onchange.JQ:change) 5.获取到选中的option的valu ...

  10. LGP4841题解

    无向联通图计数板子 首先,这个太难了,先让我们来求一个简单的: 无向图计数. 一共 \(\frac {n \times (n+1)} 2\) 条可能存在的边,枚举一条边是否存在,就有 \(2^{\fr ...