すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:インストール

最終更新日:Feb 22, 2024

Object Storage Service (OSS) SDK for Node.jsを使用してバケットの管理、オブジェクトのアップロードとダウンロード、データの管理、画像処理 (IMG) の実行を行う場合は、まずSDKをインストールします。 このトピックでは、OSS SDK for Node.jsをインストールして使用する方法について説明します。

前提条件

  • OSSが有効化されています。

  • RAMユーザーのAccessKeyペアが作成されます。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。

    Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。 これらの資格情報を使用してOSSで操作を実行することは、リスクの高い操作です。 RAMユーザーを使用してAPI操作を呼び出したり、ルーチンのO&Mを実行することを推奨します。サービスをサーバーにデプロイする場合は、RAMユーザーまたはSecurity Token service (STS) の資格情報を使用して、API操作を呼び出したり、ルーチン操作を実行したりできます。 サービスをクライアントにデプロイする場合は、STS資格情報を使用してAPI操作を呼び出します。 詳細については、をご覧ください。 リソースアクセス管理

背景情報

OSS SDK for Node.jsは、Node.js環境に基づいて構築されています。

公式ドキュメントのサンプルプロジェクトは、OSS SDK for Node.js 6.Xに基づいています。 以前のバージョンのSDKを使用している場合は、「OSS SDK for Node.jsドキュメント」をご参照ください。 SDKをバージョン6.Xにアップグレードするには、「ノートのアップグレード (5.xから6.x) 」をご参照ください。

OSS SDK For Node.jsのソースコードの詳細については、GitHubをご参照ください。 コード例の詳細については、「APIドキュメント」をご参照ください。

Node.js用のOSS SDKのインストール

OSSはNode.js 8.0.0以降をサポートしています。 8.0.0より前のNode.jsでOSS SDK for Node.jsを使用するには、OSS SDK for Node.js V4.xを使用します。

npm install ali-oss -- saveを実行し、SDKパッケージをインストールします。 詳細については、npmをご覧ください。

npmを使用するときにネットワークに問題が発生した場合は、Taobaoが提供するnpmイメージであるcnpmを使用することを推奨します。

Node.js用のOSS SDKの使用

OSS SDK for Node.jsは、Promiseベースの非同期プログラミングをサポートしています。 async/awaitまたはthen/catchを使用してPromiseオブジェクトを処理できます。

async/await

asyncキーワードとawaitキーワードを使用して、同期コードに似たコードを記述できます。 キーワードは実際にPromiseオブジェクトを処理し、非同期コードを明確にします。 次のサンプルコードでは、async/await構文を使用してオブジェクトをアップロードおよびダウンロードする方法の例を示します。

const OSS = require('ali-OSS ');

// OSSクライアントを初期化します。 次のパラメーターを実際の設定情報に置き換えます。 
const client = new OSS({
  region: 'yourregion', // バケットが存在するリージョンを指定します。 例: 'oss-cn-hangzhou' 。 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID, // OSS_ACCESS_KEY_ID環境変数が設定されていることを確認します。 
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, // OSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認します。 
  bucket: 'yourbucketname', // バケットの名前を指定します。 例: 'my-bucket-name' 。 
});

async関数uploadAndDownloadFile() {
  try {
    // オブジェクトをOSSにアップロードします。 'object' を、OSSでオブジェクトを持つ名前に置き換えます。 'localfile' をアップロードするローカルファイルのパスに置き換えます。 
    const uploadResult = await client.put('object', 'localfile');
    console.log('Upload successful: ', uploadResult);
    // OSSからオブジェクトをダウンロードして、アップロードが成功したことを確認します。 
    const getResult = await client.get('object');
    console.log('Object downloaded:', getResult);
  } catch (エラー) {
    console.error('Error:'、エラー);
    // ここにエラー処理コードを記述します。 
  }
}

uploadAndDownloadFile();

then/catch

Promiseオブジェクトのthenメソッドを使用して同期操作を正常に処理し、catchメソッドを使用してエラーを処理できます。 次のサンプルコードでは、then/catchを使用してオブジェクトをアップロードおよびダウンロードする方法の例を示します。

const OSS = require('ali-OSS ');

// OSSクライアントを初期化します。 次のパラメーターを実際の設定情報に置き換えます。 
const client = new OSS({
  region: 'yourregion', // バケットが存在するリージョンを指定します。 例: 'oss-cn-hangzhou' 。 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID, // OSS_ACCESS_KEY_ID環境変数が設定されていることを確認します。 
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET, // OSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認します。 
  bucket: 'yourbucketname', // バケットの名前を指定します。 例: 'my-bucket-name' 。 
});

// PUTメソッドを使用してオブジェクトをOSSにアップロードし、連鎖的にthen() を呼び出して結果を処理したり、エラーを処理したりします。 
client.put('object', 'localfile')
  . then((uploadResult) => {
    console.log('Upload successful: ', uploadResult);
    // オブジェクトをダウンロードして、アップロードが成功したことを確認します。 
    return client.get('object');
  })
  . then((getResult) => {
    console.log('Object downloaded:', getResult);
  })
  . catch((エラー) => {
    console.error('Error:'、エラー);
    // ここにエラー処理コードを記述します。 
  });