全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件 ET大脑
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

快速开始-NodeJS

更新时间:2018-07-16 16:06:14

本文介绍如何在Node.js环境中快速使用OSS服务,包括查看Bucket列表、查看文件列表、上传/下载文件和删除文件。为了方便修改,本文会新建一个app.js,以下功能演示代码都写在这个文件中。

安装SDK

在工作目录安装ali-oss

  1. npm install ali-oss

使用同步方式

由于SDK基于ES6开发,采用async/await能够异步编程同步化。

使用异步方式

为了支持callback的使用方式,SDK同时也提供了异步的基于Promise的接口,使用上类似callback,具体可参考这篇博客

下面的文档将以同步的方式为例。

初始化Client

创建一个文件:app.js并写入下面的内容:

  1. let OSS = require('ali-oss');
  2. let client = new OSS({
  3. region: '<Your region>',
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>'
  6. });

其中region参数是指您申请OSS服务时的区域,例如oss-cn-hangzhou。完整的区域列表可以在OSS服务节点查看。

如果所使用的endpoint不在上述列表中,可以通过以下参数指定endpoint:

  • internal: 配合region使用,如果指定internaltrue,则访问内网节点
  • secure: 配合region使用,如果指定了securetrue,则使用HTTPS访问
  • endpoint: 例如http://oss-cn-hangzhou.aliyuncs.com,如果指定了endpoint,则region会被忽略,endpoint可以指定HTTPS,也可以是IP形式
  • cname: 配合endpoint使用,如果指定了cnametrue,则将endpoint视为用户绑定的自定义域名
  • bucket: 如果未指定bucket,则进行Object相关的操作时需要先调用useBucket接口(只需要调用一次)
  • timeout: 默认为60秒,指定访问OSS的API的超时时间

查看Bucket列表

app.js末尾添加如下内容,使用listBuckets接口查看Bucket列表:

  1. async function listBuckets () {
  2. try {
  3. let result = await client.listBuckets();
  4. } catch(err) {
  5. console.log(err)
  6. }
  7. }
  8. listBucket();

运行并查看结果:node app.js

查看文件列表

修改app.js,使用list接口查看文件列表:

  1. client.useBucket('Your bucket name');
  2. async function list () {
  3. try {
  4. let result = client.list({
  5. 'max-keys': 5
  6. })
  7. console.log(result)
  8. } catch (err) {
  9. consol.log (err)
  10. }
  11. }
  12. list();

使用node app.js运行并查看结果。

上传一个文件

修改app.js,使用put接口上传一个文件:

  1. client.useBucket('Your bucket name');
  2. async function put () {
  3. try {
  4. let result = await client.put('object-key', 'local file');
  5. console.log(result);
  6. } catch (err) {
  7. consol.log (err);
  8. }
  9. }
  10. put();

下载一个文件

修改app.js,使用get接口下载一个文件:

  1. async function get () {
  2. try {
  3. let result = await client.get('object-key', 'local file');
  4. console.log(result);
  5. } catch (err) {
  6. consol.log (err);
  7. }
  8. }
  9. get();

删除一个文件

修改app.js,使用delete接口删除一个文件:

  1. async function delete () {
  2. try {
  3. let result = await client.delete('object-key');
  4. console.log(result);
  5. } catch (err) {
  6. console.log (err);
  7. }
  8. }
  9. delete();

了解更多

本文导读目录