在上一篇文章中,我们介绍了如何通过 bce-bos-uploader 来往 BOS 直传文件,在这篇文章中,我们主要介绍如何使用 百度开放云的 文档转码服务,方便的处理各种文档格式,同时可以获取跨平台的文档预览地址
百度开放云的文档转码服务是基于百度文库转码服务的封装,可以支持各种常见的主流格式:doc, docx, ppt, pptx, xls, xlsx, vsd, pot, pps, rtf, wps, et, dps, pdf, txt, epub
安装 bce-bos-uploader
我们不直接使用 bce-sdk-js,因为默认情况下,bce-sdk-js 只能支持现代浏览器,不过我们在 bce-bos-uploader 里面对于网络交互的部分,进行了适配,因此可以在比较低版本的IE下面运行。
bower install bce-bos-uploader
页面中引用相关的资源
默认配置
var AK = 'your ak';
var SK = 'your sk';
var DOC_ENDPOINT = 'http://doc.baidubce.com';
var BOS_ENDPOINT = 'https://bj.bcebos.com';
var BOS_BUCKET = 'your bucket';
var CHUNK_SIZE = '1m';
初始化 DocClient
var doc = new baidubce.sdk.DocClient.Document({
endpoint: DOC_ENDPOINT,
credentials: {ak: AK, sk: SK}
});
初始化 Uploader
在页面中放置一个上传控件:
然后初始化 bce-bos-uploader
var uploader = new baidubce.bos.Uploader({
browse_button: '#file',
multi_selection: true,
bos_bucket: BOS_BUCKET,
bos_endpoint: BOS_ENDPOINT,
bos_ak: AK,
bos_sk: SK,
auto_start: true,
max_file_size: '100m',
accept: 'txt,pdf,doc,docx,ppt,pptx,xls,xlsx',
flash_swf_url: 'bower_components/moxie/bin/flash/Moxie.swf',
init: {
FileUploaded: function (_, file, info) {
// 调用 转码服务的接口,提交转码请求
var bucket = BOS_BUCKET;
var object = file.name;
var title = file.name;
doc.createFromBos(bucket, object, title)
.then(function (response) {
console.log(response.body.documentId);
});
},
Error: function (_, error, file) {
// 处理错误
}
}
});
查看当前转码的文档列表
提交了文档转码请求之后,我们可以通过调用 doc.list()
接口获取所有的文档转码任务,如果某个任务的状态是 PUBLISHED
了,那么就可以预览文档了:
doc.list().then(function (response) {
console.log(response.body.documents);
});
获取文档预览的播放器地址
如果某个转码任务的状态是 PUBLISHED,那么就可以调用 doc.read(mediaId)
的接口获取播放器的地址:
首选需要引入播放器的代码
调用doc.read()
接口,然后初始化文档播放器:
var documentId = 'ths PUBLISHED document id';
doc.read(documentId).then(function (response) {
var doc = response.body;
new Document('reader', {
docId: doc.docId,
token: doc.token,
host: doc.host,
width: 800
});
});