JavaScript-SDK之如何实现快速开始-NodeJS?-问答-阿里云开发者社区-阿里云

开发者社区> 青衫无名> 正文

JavaScript-SDK之如何实现快速开始-NodeJS?

2017-10-19 09:35:57 1626 0
本文介绍如何在Node.js环境中使用OSS JavaScript SDK来访问OSS服务,包括查看Bucket列表、查看文件列表、上传/下载文件和删除文件。为了方便修改,本文会新建一个app.js,以下功能演示代码都写在这个文件中。

安装SDK


在工作目录安装ali-oss: npm install ali-oss


使用同步方式


由于SDK基于 ES6开发,使用 Generator Function使用户能够方便地用同步的方式异步的代码,需要配合co使用。具体可参考 这篇博客。使用同步方式还需要安装co: npm install co


使用异步方式


为了支持callback的使用方式,SDK同时也提供了异步的基于 Promise的接口,使用上类似callback,具体可参考 这篇博客
下面的文档将以[backcolor=transparent]同步的方式为例。

初始化Client


创建一个文件:app.js并写入下面的内容: var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});


其中region参数是指您申请OSS服务时的区域,例如oss-cn-hangzhou。完整的区域列表可以在 OSS服务节点查看。
[backcolor=transparent]如果所使用的endpoint不在上述列表中,可以通过以下参数指定endpoint:
  • internal: 配合region使用,如果指定internal为true,则访问内网节点
  • secure: 配合region使用,如果指定了secure为true,则使用HTTPS访问
  • endpoint: 例如http://oss-cn-hangzhou.aliyuncs.com,如果指定了endpoint,则region会被忽略,endpoint可以指定HTTPS,也可以是IP形式
  • cname: 配合endpoint使用,如果指定了cname为true,则将endpoint视为用户绑定的自定义域名
  • bucket: 如果未指定bucket,则进行Object相关的操作时需要先调用useBucket接口(只需要调用一次)
  • timeout: 默认为60秒,指定访问OSS的API的超时时间


查看Bucket列表


在app.js末尾添加如下内容,使用listBuckets接口查看Bucket列表: co(function* () {
  var result = yield client.listBuckets();
  console.log(result);
}).catch(function (err) {
  console.log(err);
});


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

查看文件列表


修改app.js,使用list接口查看文件列表: co(function* () {
  client.useBucket('Your bucket name');
  var result = yield client.list({
    'max-keys': 5
  });
  console.log(result);
}).catch(function (err) {
  console.log(err);
});


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

上传一个文件


修改app.js,使用put接口上传一个文件: co(function* () {
  client.useBucket('Your bucket name');
  var result = yield client.put('object-key', 'local file');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



下载一个文件


修改app.js,使用get接口下载一个文件: co(function* () {
  var result = yield client.get('object-key', 'local file');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



删除一个文件


修改app.js,使用delete接口删除一个文件: co(function* () {
  var result = yield client.delete('object-key');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



了解更多


取消 提交回答
全部回答(0)
相关问答

10

回答

【精品问答合集】Hbase热门问答

hbase小能手 2019-05-29 14:37:26 120255浏览量 回答数 10

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157090浏览量 回答数 145

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292302浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146795浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145636浏览量 回答数 31

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 135565浏览量 回答数 42

82

回答

OSS入门教程

belle.zhoux 2014-07-07 17:14:27 149409浏览量 回答数 82

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302613浏览量 回答数 249

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471462浏览量 回答数 24

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204013浏览量 回答数 2
+关注
3598
文章
840
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载