百度开放云 文档转码服务

上一篇文章中,我们介绍了如何通过 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

页面中引用相关的资源

<!--[if lt IE 8]><script src="bower_components/json3/lib/json3.min.js"></script><![endif]-->
<!--[if lt IE 9]><script src="bower_components/js-polyfills/es5.js"></script><![endif]-->
<!--[if lt IE 10]><script src="bower_components/moxie/bin/js/moxie.min.js"></script><![endif]-->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bce-bos-uploader/bce-bos-uploader.bundle.min.js"></script>

默认配置

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

在页面中放置一个上传控件:

<input type="file" id="file" />

然后初始化 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) 的接口获取播放器的地址:

首选需要引入播放器的代码

<script src="https://bce.bdstatic.com/doc/doc_reader.js"></script>
<div id="reader"></div>

调用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
  });
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值