バケットリストの表示、オブジェクトリストの表示、オブジェクトのアップロード/ダウンロード/削除など、Node.js 環境で OSS JavaScript SDK を使用して OSS サービスにアクセスする方法について説明します。変更を容易にするために、次に新しい ‘app.js’ の作成方法を紹介します。以下の機能のデモコードがこのオブジェクトに含まれています。
SDK のインストール
最初に ‘ali-oss’ を作業ディレクトリにインストールします。
npm install ali-oss
同期モードの使用
SDK は ES6 に基づいて開発されています。ジェネレータ機能 を使用すると、ユーザは同期モードでコードを使用できます。この機能は ‘co’ と組み合わせて使用する必要があります。詳細は、ブログ を参照してください。同期モードでコードを使用するには、’Go’ もインストールする必要があります。
npm install co
非同期モードの使用
コールバックの使用をサポートするために、SDK は Promise に基づく非同期インターフェイスも提供します。使い方はコールバックと似ています。詳細は、ブログ を参照してください。
以下は 同期モード を例にして説明します。
クライアントの初期化
オブジェクト ‘app.js’ を作成し、下記の内容を記入します。
var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
region: '<Your region>',
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>'
});
パラメーター ‘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’ インターフェースを使用します。
co(function* () {
var result = yield client.listBuckets();
console.log(result);
}).catch(function (err) {
console.log(err);
});
‘node app.js’ で実行し、結果を確認します。
オブジェクトリストの確認
‘app.js’ を修正し、’list’ インターフェースを使用してオブジェクトリストを確認します。
co(function* () {
client.useBucket('Your bucket name');
var result = yield client.list({
'max-keys': 5
});
console.log(result);
}).catch(function (err) {
console.log(err);
});
‘node app.js’ で実行し、結果を確認します。
オブジェクトのアップロード
‘app.js’ を修正し、’put’ インターフェースを使用してオブジェクトをアップロードします。
co(function* () {
client.useBucket('Your bucket name');
var result = yield client.put('object-key', 'local file');
console.log(result);
}).catch(function (err) {
console.log(err);
});
オブジェクトのダウンロード
‘app.js’ を修正し、’get’ インターフェースを使用してオブジェクトをダウンロードします。
co(function* () {
var result = yield client.get('object-key', 'local file');
console.log(result);
}).catch(function (err) {
console.log(err);
});
オブジェクトの削除
‘app.js’ を修正し、’delete’ インターフェースを使用してオブジェクトを削除します。
co(function* () {
var result = yield client.delete('object-key');
console.log(result);
}).catch(function (err) {
console.log(err);
});