Object Storage Service (OSS) は、フォルダ構造をシミュレートするディレクトリ機能を提供します。 この機能により、フラットな構造では整理や管理が難しい大量のオブジェクトを簡単に扱うことができます。
ディレクトリの作成
次のコードは、ディレクトリを作成する方法を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// yourregion をバケットが配置されているリージョンに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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,
// bucket をご使用のバケット名に設定します。
bucket: 'examplebucket',
});
async function putBuffer () {
try {
// ディレクトリ名を設定します。 名前はスラッシュ (/) で終わる必要があります。
const result = await client.put('exampledir/', new Buffer(''));
console.log(result);
} catch (e) {
console.log(e);
}
}
putBuffer();ディレクトリの削除
警告
ディレクトリを削除すると、そのすべてのサブディレクトリとオブジェクトも削除されます。 慎重に操作してください。
次のコードは、log/ ディレクトリとその中のすべてのオブジェクトを削除する方法を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// yourregion をバケットが配置されているリージョンに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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,
// bucket をご使用のバケット名に設定します。
bucket: 'yourbucketname'
});
// promise.all が中断されないように失敗したリクエストを処理し、失敗の理由と失敗したファイルの名前を返します。
async function handleDel(name, options) {
try {
await client.delete(name);
} catch (error) {
error.failObjectName = name;
return error;
}
}
// 複数のファイルを削除します。
async function deletePrefix(prefix) {
const list = await client.list({
prefix: prefix,
});
list.objects = list.objects || [];
const result = await Promise.all(list.objects.map((v) => handleDel(v.name)));
console.log(result);
}
// ディレクトリとその中のすべてのファイルを削除します。
deletePrefix('log/')リファレンス
フォルダの作成
フォルダを作成するために使用される API 操作の詳細については、「PutObject」をご参照ください。
ディレクトリの削除
ディレクトリとその中のすべてのオブジェクトを削除するための完全なサンプルコードについては、GitHub の例をご参照ください。
フォルダとその中のすべてのファイルを削除するために使用される API 操作の詳細については、「DeleteObject」をご参照ください。