上云无忧 > 文档中心 > 百度智能云对象存储BOS在浏览器中直接上传文件到BOS
对象存储BOS
百度智能云对象存储BOS在浏览器中直接上传文件到BOS

文档简介:
使用流程: 使用 bce-bos-uploader,可以参考下面的内容完成如何在浏览器中直接上传文件到 BOS 。使用流程: 开启 Bucket 的跨域访问设置; 查询 ak/sk; 初始化 bce-bos-uploader 参数。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

使用流程

使用 bce-bos-uploader,可以参考下面的内容完成如何在浏览器中直接上传文件到 BOS 。使用流程:

  1. 开启 Bucket 的跨域访问设置
  2. 查询 ak/sk
  3. 初始化 bce-bos-uploader 参数

开启 Bucket 的跨域访问

受浏览器安全限制,如果想直接在浏览器中访问 BOS 服务,必须正确设置好相关 bucket 的跨域功能。设置方法如下:

  1. 登录百度智能云控制台。
  2. 选择 Bucket 并进入 Bucket 管理页面。
  3. 点击左侧『Bucket 属性』,进入 Bucket 配置的页面。
  4. 点击右侧『CORS 设置』,进入 CORS 设置页面。
  5. 点击『添加规则』按钮,可以添加一条或者多条 CORS 的规则。

查询 AK/SK

在百度智能云控制台首页右上角账号下的“安全认证”查询AK和SK的信息,也可以在 Bucket 管理中查看。详细操作可参见管理ACCESSKEY。

获取 bce-bos-uploader

有两种方式可以获取 bce-bos-uploader 的代码:

  • 第一种:通过 npm 安装

    npm install @baiducloud/bos-uploader
  • 第二种:直接引用 CDN 上面的资源(测试专用,不建议用于生产环境)

    <script src=" https://bj.bcebos.com/v1/bce-cdn/lib/@baiducloud/bos-uploader/<version>/bce-bos-uploader.
  • bundle.min.js"></script>

初始化 bce-bos-uploader

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>bce-bos-uploader simple demo</title>
    <!--[if lt IE 8]><script src="https://unpkg.com/json3@3.3.2/lib/json3.min.js"></script><![endif]-->
    <!--[if lt IE 9]><script src="https://unpkg.com/js-polyfills@0.1.42/es5.js"></script><![endif]-->
    <!--[if lt IE 10]><script src="https://unpkg.com/mOxie@1.5.7/bin/js/moxie.min.js"></script><![endif]-->
    <script src="https://unpkg.com/jquery@3.3.1/dist/jquery.min.js"></script>
    <script src="https://bce.bdstatic.com/lib/@baiducloud/bos-uploader/1.4.0-rc.0/bce-bos-uploader.bundle.min.js"
></script>
  </head>
  <body>
    <input type="file" id="file" >
    <button type="submit">开始上传</button>
    <script>
      var uploader = new baidubce.bos.Uploader({
      browse_button: '#file',
      bos_bucket: '<your bucket>',
      bos_endpoint: '<your host>',
      bos_ak: '<your ak>', 
      bos_sk: '<your sk>',
      max_file_size: '1Gb',
      init: {
        FileUploaded: function (_, file, info) {
          var bucket = info.body.bucket;
          var object = info.body.object;
          var url = '<your host>' + bucket + '/' + object;
          $(document.body).append($('<div><a href="' + url + '">' + url + '</a></div>'));
        },
        UploadComplete: function() {
          $(document.body).append('<div>上传结束!</div>');
        }
      }
    });
     $('button[type=submit]').click(function () {
      uploader.start();
      return false;
    });

    </script>
  </body>
</html>

将上述代码保存为 index.html,下面会启动 webserver 来访问这个页面

启动 webserver

  • 通过 PHP 来启动

    php -S 0.0.0.0:9999
  • 通过 Python 来启动

    python -m SimpleHTTPServer 9999
  • 其它方式请参考相关的文档

启动 webserver 之后,在浏览器里面访问http://localhost:9999/index.html打开刚才的页面,开始测试是否可以正常上传。

相似文档
  • Bce-bos-uploader 支持 STS(Security Token Service)临时授权的方式。服务端生成一组具体特定操作权限、具有一定时效性的临时AK/SK,这组临时的 AK/SK 可以暴露给浏览器端直接使用。用户只需要将服务端返回的 AK/SK 及 SessionToken 设置为 bce-bos-uploader 对应的 bos-ak、bos-sk 和 uptoken 参数。 下图简单介绍了整个业务交互过程,关于 STS 方面的介绍请参考临时授权访问。
  • 因为 IE 低版本(IE8,IE9)对 html5 支持的不完善,为了在这些浏览器里面实现文件直传的功能, BOS 开发了 PostObject 接口,通过一个 multipart/form-data 的格式,就可以把文件上传到 BOS 服务器。Postobject 接口的签名模式下应用服务器端对 policy 生成签名,再返回给客户端。
  • 如您不使用 bce-bos-uploader ,可以参考下面的内容完成如何在浏览器中直接上传文件到 BOS 。使用流程: 开启 Bucket 的跨域访问设置; 查询 ak/sk; 初始化 BosClient; 处理上传逻辑。
  • 用户在使用浏览器上传文件到 BOS 的时候,如果遇到文件过大,需要先将文件分块然后再上传。上传过程中有可能会遇到页面关闭、浏览器崩溃、网络连接中断等问题,从而导致上传失败。BOS 支持分块上传和断点续传功能。分块上传请参见“ Object 的分块上传”,下面介绍“断点续传”的实现方法。
  • Bce-bos-uploader 支持 STS(Security Token Service) 临时授权的方式。服务端生成一组具体特定操作权限、具有一定时效性的临时 AK/SK ,这组临时的 AK/SK 可以暴露给浏览器端直接使用。用户只需要将服务端返回的 AK/SK 及 SessionToken 设置为 bce-bos-uploader 对应的 bos-ak、bos-sk 和 uptoken 参数。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部