edit-icon download-icon

クイックスタート: NodeJS

最終更新日: Oct 02, 2017

バケットリストの表示、オブジェクトリストの表示、オブジェクトのアップロード/ダウンロード/削除など、Node.js 環境で OSS JavaScript SDK を使用して OSS サービスにアクセスする方法について説明します。変更を容易にするために、次に新しい ‘app.js’ の作成方法を紹介します。以下の機能のデモコードがこのオブジェクトに含まれています。

SDK のインストール

最初に ‘ali-oss’ を作業ディレクトリにインストールします。

  1. npm install ali-oss

同期モードの使用

SDK は ES6 に基づいて開発されています。ジェネレータ機能 を使用すると、ユーザは同期モードでコードを使用できます。この機能は ‘co’ と組み合わせて使用する必要があります。詳細は、ブログ を参照してください。同期モードでコードを使用するには、’Go’ もインストールする必要があります。

  1. npm install co

非同期モードの使用

コールバックの使用をサポートするために、SDK は Promise に基づく非同期インターフェイスも提供します。使い方はコールバックと似ています。詳細は、ブログ を参照してください。

以下は 同期モード を例にして説明します。

クライアントの初期化

オブジェクト ‘app.js’ を作成し、下記の内容を記入します。

  1. var co = require('co');
  2. var OSS = require('ali-oss');
  3. var client = new OSS({
  4. region: '<Your region>',
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>'
  7. });

パラメーター ‘region’ は、OSS サービスを提供するアクセスポイント(例えば “oss-cn-hangzhou”)です。アクセスポイントリストは OSS アクセスドメイン名 を参照してください。

使用するアクセスポイントが上記のリストにない場合は、次のパラメーターを使用して指定できます。

  • internal:’region’ と組み合わせて使用します。’internal’ が ‘true’ に指定されている場合、イントラネットノードを使用します。
  • secure:’region’ と組み合わせて使用します。’secure’ が ‘true’ に指定されている場合、アクセスに HTTP を使用します。
  • endpoint:たとえば、http://oss-cn-hangzhou.aliyuncs.com。’endpoint’ が指定された場合、’region’ は無視されます。IP アドレス形式で指定できる ‘endpoint’ に HTTPS を使用できます。
  • cname:’endpoint’ と組み合わせて使用します。’cname’ が ‘true’ に指定されている場合、’endpoint’ は限定されたユーザー定義ドメインと見なされます。
  • bucket:’bucket’ が指定されていない場合、オブジェクト関連の操作のための ‘useBucket’ インターフェースを呼び出す必要があります(1つのみ)。
  • timeout:デフォルト値は 60 秒です。OSS の API タイムアウト値を指定します。

バケットリストの確認

‘app.js’ の最後に次の内容を追加します。バケットリストを表示するには、’listBuckets’ インターフェースを使用します。

  1. co(function* () {
  2. var result = yield client.listBuckets();
  3. console.log(result);
  4. }).catch(function (err) {
  5. console.log(err);
  6. });

‘node app.js’ で実行し、結果を確認します。

オブジェクトリストの確認

‘app.js’ を修正し、’list’ インターフェースを使用してオブジェクトリストを確認します。

  1. co(function* () {
  2. client.useBucket('Your bucket name');
  3. var result = yield client.list({
  4. 'max-keys': 5
  5. });
  6. console.log(result);
  7. }).catch(function (err) {
  8. console.log(err);
  9. });

‘node app.js’ で実行し、結果を確認します。

オブジェクトのアップロード

‘app.js’ を修正し、’put’ インターフェースを使用してオブジェクトをアップロードします。

  1. co(function* () {
  2. client.useBucket('Your bucket name');
  3. var result = yield client.put('object-key', 'local file');
  4. console.log(result);
  5. }).catch(function (err) {
  6. console.log(err);
  7. });

オブジェクトのダウンロード

‘app.js’ を修正し、’get’ インターフェースを使用してオブジェクトをダウンロードします。

  1. co(function* () {
  2. var result = yield client.get('object-key', 'local file');
  3. console.log(result);
  4. }).catch(function (err) {
  5. console.log(err);
  6. });

オブジェクトの削除

‘app.js’ を修正し、’delete’ インターフェースを使用してオブジェクトを削除します。

  1. co(function* () {
  2. var result = yield client.delete('object-key');
  3. console.log(result);
  4. }).catch(function (err) {
  5. console.log(err);
  6. });

参考資料