对象存储BOS

    初始化

    确定Endpoint

    BOS访问域名为:

    区域 访问Endpoint 协议
    BJ bj.bcebos.com HTTP, HTTPS
    GZ gz.bcebos.com HTTP, HTTPS
    SU su.bcebos.com HTTP, HTTPS

    Node.js端快速入门

    1. 初始化一个BosClient。

    BosClient是与BOS服务交互的客户端,BOS JavaScript SDK的BOS操作都是通过BosClient完成的。

    示例代码:

    var bce = require('@baiducloud/sdk');
    var config = {
     credentials: {
          ak: 'ak',       //您的AK
          sk: 'sk'        //您的SK
       },
     endpoint: <EndPoint>
    };
    1. 新建一个Bucket。

      Bucket是BOS上的命名空间,相当于数据的容器,可以存储若干数据实体(Object)。在您上传数据前,必须先创建一个Bucket。

      示例代码:

      let newBucketName = <BucketName>;    // 新建一个Bucket,指定Bucket名称
      client.createBucket(newBucketName)
        .then(function() {
               // 创建完成,添加您自已的代码;
         })
         .catch(function(error) {
              // 创建失败,添加您自己的代码,处理异常
         });
    2. 上传Object。

      Object是BOS中最基本的数据单元,您可以把Object简单的理解为文件。对于一个简单的Object的上传,BOS为您提供了四种方式:文件形式上传、数据流形式上传、二进制串上传和字符串上传。

      示例代码:

      function done(response) {
        // 上传完成
      }
      function fail(fail) {
        // 上传失败
      }
      
      // 以字符串形式上传
      client.putObjectFromString(bucket, object, 'hello world')
        .then(done)
        .catch(fail);
      
      // 以buffer形式上传
      var buffer = new Buffer('hello world'); client.putObject(bucket, object, buffer)
        .then(done)
        .catch(fail);
      
      // 以文件形式上传,仅支持Node.js环境
      client.putObjectFromFile(bucket, object, <path-to-file>)
        .then(done)
        .catch(fail);
      
      // 以blob对象形式上传,仅支持浏览器环境
      client.putObjectFromBlob(bucket, object, <blob对象>)
        .then(done)
        .catch(fail);
    3. 查看Bucket中的Object

      您可以参考如下代码来查看Bucket中的Object列表:

      client.listObjects(<bucketName>)
        .then(function (response) {
            var contents = response.body.contents;
            for (var i = 0, l = contents.length; i < l; i++) {
                console.log(contents[i].key);
            }
        })
        .catch(function (error) {
            // 查询失败
        });

    新建BosClient

    BosClient是BOS服务的JavaScript客户端,为开发者与BOS服务进行交互提供了一系列的方法。在使用SDK发起对BOS的请求前,您需要初始化一个BosClient实例,并对它进行一些必要设置。

    • 浏览器端: let BosClient = baidubce.sdk.BosClient
    • Node.js端: import {BosClient} from '@baiducloud/sdk'

    通过AK/SK方式访问BOS

    1. 确定EndPoint。EndPoint是指BOS服务在各个区域的域名地址,默认域名为北京:http://bj.bcebos.com
    2. 传入您的AK/SK。
    3. 将配置好的config传入BosClient。

    示例代码

    用户可以参考如下代码新建一个BosClient:

    let config = {
        endpoint: <EndPoint>,
        credentials: {
            ak: <AccessKeyID>,           //您的AK
            sk: <SecretAccessKey>       //您的SK
        }
    
    let client = new BosClient(config);

    注意: EndPoint参数即BOS访问域名,只能用指定的包含区域的域名来进行定义,不指定时默认为北京区域http://bj.bcebos.com。BOS访问域名支持HTTP和HTTPS两种调用方式,为了提升数据的安全性,建议使用https://bj.bcebos.com。百度智能云目前开放了多区域支持,请参考区域选择说明

    通过sts方式访问BOS

    BOS可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务,详情可参见百度智能云STS使用介绍。通过STS,您可以为第三方用户颁发一个自定义时效和权限的访问凭证。第三方用户可以使用该访问凭证直接调用百度智能云的API或SDK访问百度智能云资源。

    通过sts方式访问BOS,用户先通过sts-client申请一套AK、SK和token,然后将该套参数配置到BosClient中,用户可以参考如下代码新建一个BosClient:

    • Node.js端:
    const {BosClient} = require('@baiducloud/sdk');
    
    var bosConfig = {
        credentials: {
            ak: '{accessKeyId}', // STS服务器下发的临时ak
            sk: '{secretAccessKey}' // STS服务器下发的临时sk
        },
        sessionToken: '{sessionToken}',  // STS服务器下发的sessionToken
        endpoint: 'http://bj.bcebos.com'
    };
    
    var client = new BosClient(bosConfig);
    • 浏览器端:
    var bosConfig = {
        credentials: {
            ak: '{accessKeyId}', // STS服务器下发的临时ak
            sk: '{secretAccessKey}' // STS服务器下发的临时sk
        },
        sessionToken: '{sessionToken}',  // STS服务器下发的sessionToken
        endpoint: 'http://bj.bcebos.com'
    };
    
    var client = new baidubce.sdk.BosClient(bosConfig);
    上一篇
    安装SDK
    下一篇
    Bucket管理