开发者社区> 问答> 正文

NodeJS 安装OSS SDK

已解决

展开
收起
2017-12-25 08:20:07 1724 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    本文介绍如何在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();

    了解更多

    2017-12-29 15:30:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载