Object Storage Service (OSS) バケットの管理、オブジェクトのアップロードとダウンロード、データの管理、イメージ処理 (IMG) の実行を行う場合は、まずOSS SDK for Node.jsをインストールします。 このトピックでは、OSS SDK for Node.jsをインストールして使用する方法について説明します。
前提条件
OSSが有効化されています。
RAMユーザーのAccessKeyペアが作成されます。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。
Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。 AccessKeyペアを使用して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に基づいています。 以前のバージョンを使用している場合は、「OSS SDK for Node.jsドキュメント」をご参照ください。 OSS SDK for Node.jsをバージョン6.Xにアップグレードするには、「メモのアップグレード (5.xから6.x) 」をご参照ください。
OSS SDK For Node.jsのソースコードの詳細については、GitHubをご参照ください。 コード例の詳細については、「APIドキュメント」をご参照ください。
Node.js用のOSS SDKのインストール
OSSはNode.js 8.0.0以降をサポートしています。 Node.jsの8.0.0より前のバージョンでOSS SDK for Node.jsを使用するには、OSS SDK for Node.js V4.xを使用します。
npm install ali-oss -- saveコマンドを実行し、SDKパッケージをインストールします。 詳細については、npmをご覧ください。
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 ');
// OSSClientインスタンスを初期化します。 次のパラメーターを実際の設定情報に置き換えます。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にアップロードします。 「オブジェクト」を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 ');
// OSSClientインスタンスを初期化します。 次のパラメーターを実際の設定情報に置き換えます。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:'、エラー);
// ここにエラー処理コードを記述します。
});