阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

快速開始-NodeJS

更新時間: Oct 30, 2018

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

瞭解更多