このトピックでは、OSS SDK for Node.js を使用して、バケットのリスト表示やオブジェクトのアップロードなどの基本操作を実行する方法について説明します。
前提条件
OSS SDK for Node.js を初期化します。詳細については、「初期化 (Node.js SDK)」をご参照ください。
バケットのリスト表示
次のコードは、バケットをリスト表示する方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// バケットが配置されているリージョンに region を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// bucket をご利用のバケットの名前に設定します。
bucket: 'yourBucketName',
});
async function listBuckets() {
try {
// アカウント配下のすべてのリージョンのすべてのバケットをリスト表示します。
const result = await client.listBuckets();
console.log(result);
} catch (err) {
console.log(err);
}
}
listBuckets();オブジェクトのリスト表示
次のコードは、オブジェクトをリスト表示する方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// yourregion をバケットが配置されているリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合、Region を oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// yourbucketname をバケット名に置き換えます。
bucket: 'yourbucketname'
});
async function list () {
// パラメーターを指定しない場合、デフォルトで最大 100 個のオブジェクトが返されます。
const result = await client.list();
console.log(result);
}
list();オブジェクトのアップロード
次のコードは、単一のオブジェクトをアップロードする方法の例を示しています。
const OSS = require('ali-oss')
const path=require("path")
const client = new OSS({
// yourregion をバケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、Region を oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
});
// カスタムリクエストヘッダー
const headers = {
// オブジェクトのストレージクラスを指定します。
'x-oss-storage-class': 'Standard',
// オブジェクトのアクセス権限を指定します。
'x-oss-object-acl': 'private',
// ファイルが URL を使用してアクセスされる場合、ファイルが添付ファイルとしてダウンロードされるように指定します。ダウンロードされるファイル名は example.txt です。
'Content-Disposition': 'attachment; filename="example.txt"',
// オブジェクトにタグを設定します。複数のタグを同時に設定できます。
'x-oss-tagging': 'Tag1=1&Tag2=2',
// PutObject 操作中に同じ名前のオブジェクトを上書きするかどうかを指定します。このパラメーターを true に設定すると、オブジェクトが上書きされるのを防ぎます。
'x-oss-forbid-overwrite': 'true',
};
async function put () {
try {
// OSS オブジェクトの完全なパスとローカルファイルの完全なパスを指定します。OSS オブジェクトの完全なパスにバケット名を含めることはできません。
// ローカルファイルの完全なパスにローカルパスを指定しない場合、ファイルはサンプルプログラムが属するプロジェクトのローカルパスからアップロードされます。
const result = await client.put('exampleobject.txt', path.normalize('D:\\localpath\\examplefile.txt')
// カスタムヘッダー
,{headers}
);
console.log(result);
} catch (e) {
console.log(e);
}
}
put();オブジェクトのダウンロード
次のコードは、単一のオブジェクトをダウンロードする方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// yourregion をバケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket'
});
async function get () {
try {
// オブジェクトの完全なパスとローカルファイルの完全なパスを指定します。オブジェクトの完全なパスにバケット名を含めることはできません。
// 指定されたローカルファイルが存在する場合、それは上書きされます。ファイルが存在しない場合は作成されます。
// ローカルパスが指定されていない場合、ダウンロードされたファイルはデフォルトでプロジェクトのローカルパスに保存されます。
const result = await client.get('exampleobject.txt', 'D:\\localpath\\examplefile.txt');
console.log(result);
} catch (e) {
console.log(e);
}
}
get(); 単一オブジェクトの削除
次のコードは、単一のオブジェクトを削除する方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、Region を oss-cn-hangzhou に設定します。
region: 'oss-cn-hangzhou',
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
});
async function deleteObject() {
try {
// オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません。
const result = await client.delete('exampleobject.txt');
console.log(result);
} catch (error) {
console.log(error);
}
}
deleteObject();
関連ドキュメント
バケットのリスト表示
完全なサンプルコードについては、「GitHub の例」をご参照ください。
API 操作の詳細については、「ListBuckets (GetService)」をご参照ください。
オブジェクトのリスト表示
完全なサンプルコードについては、「GitHub の例」をご参照ください。
API 操作の詳細については、「GetBucket (ListObjects)」をご参照ください。
オブジェクトのアップロード
ファイルのダウンロード
単一オブジェクトの削除
完全なサンプルコードについては、「GitHub の例」をご参照ください。
API 操作の詳細については、「DeleteObject」をご参照ください。