本文主要介绍如何安装和使用Node.js SDK。

前提条件

  • 已开通阿里云对象存储OSS服务。
  • 已创建RAM用户的AccessKey ID和AccessKey Secret。

    由于云账号AccessKey拥有所有API的访问权限,建议使用RAM用户的AccessKey。如果部署在服务端,请使用RAM或STS的方式进行API访问或日常运维管控操作;如果部署在客户端,请使用STS方式进行API访问。详情请参见访问控制

背景信息

OSS Node.js SDK基于Node.js环境构建。

目前官网文档中的demo基于SDK 6.X,SDK版本低于6.X,请参见5.X开发文档,如需升级至6.X,请参见升级详情

SDK源码请参见Github,更多信息请参见API文档

安装

OSS支持8.0.0及以上的Node.js版本。如果需要在Node.js低于8.0.0的环境中使用,请使用ali-oss 4.x版本。

使用npm安装SDK开发包,安装命令为npm install ali-oss --save

如果使用npm遇到网络问题,建议使用淘宝提供的npm镜像cnpm

使用方式

Node.js SDK支持同步和异步的使用方式。无论同步方式还是异步方式,均使用new OSS()创建client。

  • 同步方式:基于asyncawait方式,异步编程同步化。
  • 异步方式:类似Callback的方式,API接口返回Promise,使用.then()处理返回结果,使用.catch()处理错误。

先使用同步方式上传文件,再使用异步方式下载文件的示例代码如下:

  • 同步方式
    let client = new OSS(...);
    async function put () {
      try {
        // 'object'填写上传至OSS的object名称,即不包括Bucket名称在内的Object的完整路径。
        // 'localfile'填写上传至OSS的本地文件完整路径。
        let r1 = await client.put('object','localfile'); 
        console.log('put success: %j', r1);
        let r2 = await client.get('object');
        console.log('get success: %j', r2);
      } catch(e) {
        console.error('error: %j', e);
      }
    }
    await put();
  • 异步方式
    let client = new OSS(...);
    
    // 'object'填写从OSS下载的object名称,即不包括Bucket名称在内的Object的完整路径。
    // 'localfile'填写下载到本地文件的完整路径。
    client.put('object', 'localfile').then(function (r1) {
      console.log('put success: %j', r1);
      return client.get('object');
    }).then(function (r2) {
      console.log('get success: %j', r2);
    }).catch(function (err) {
      console.error('error: %j', e);
    });