このトピックでは、Harmony 用 OSS SDK を使用して単一または複数のオブジェクトを削除する方法について説明します。
使用上の注意
サポートされているリージョンとエンドポイントについては、「リージョンとエンドポイント」をご参照ください。
オブジェクトを削除するには、
oss:DeleteObject権限が必要です。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。
サンプルコード
単一オブジェクトの削除
import Client, { RequestError } from '@aliyun/oss';
// OSS クライアントインスタンスを作成します。
const client = new Client({
// STS から取得した AccessKey ID を指定します。
accessKeyId: 'yourAccessKeyId',
// STS から取得した AccessKey シークレットを指定します。
accessKeySecret: 'yourAccessKeySecret',
// STS から取得した STS トークンを指定します。
securityToken: 'yourSecurityToken',
// バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
region: 'oss-cn-hangzhou',
});
// バケットの名前を指定します。
const bucket = 'yourBucketName';
// 削除するオブジェクトの名前を指定します。
const key = 'yourObjectName';
/**
* 指定されたオブジェクトを削除します。
* deleteObject メソッドを使用します。
*/
const deleteObject = async () => {
try {
// deleteObject メソッドを使用して、バケットからオブジェクトを削除します。
const res = await client.deleteObject({
bucket, // バケットの名前を指定します。
key, // オブジェクトの名前を指定します。
});
// 削除の結果を表示します。
console.log(JSON.stringify(res));
} catch (err) {
// 例外をキャッチします。
if (err instanceof RequestError) {
// 既知のタイプのエラーが存在する場合は、エラーコード、エラーメッセージ、リクエスト ID、HTTP ステータスコード、EC などの情報を表示します。
console.log('code: ', err.code); // エラーコード。
console.log('message: ', err.message); // エラーメッセージ。
console.log('requestId: ', err.requestId); // リクエスト ID。
console.log('status: ', err.status); // HTTP ステータスコード。
console.log('ec: ', err.ec); // EC。
} else {
// その他の不明なタイプのエラーを表示します。
console.log('unknown error: ', err);
}
}
};
// deleteObject 関数を呼び出して、オブジェクトを削除します。
deleteObject();
複数オブジェクトの削除
import Client, { RequestError } from '@aliyun/oss';
// OSS クライアントインスタンスを作成します。
const client = new Client({
// STS から取得した AccessKey ID を指定します。
accessKeyId: 'yourAccessKeyId',
// STS から取得した AccessKey シークレットを指定します。
accessKeySecret: 'yourAccessKeySecret',
// STS から取得した STS トークンを指定します。
securityToken: 'yourSecurityToken',
// バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
region: 'oss-cn-hangzhou',
});
// バケットの名前を指定します。
const bucket = 'yourBucketName';
/**
* 一度に複数のオブジェクトを削除します。
* deleteMultipleObjects メソッドを使用して、バケットから複数のオブジェクトを削除します。
*/
const deleteMultipleObjects = async () => {
try {
// deleteMultipleObjects メソッドを呼び出して、複数のオブジェクトを削除します。
const res = await client.deleteMultipleObjects({
bucket, // バケットの名前を指定します。
delete: {
// 削除するオブジェクトの名前を指定します。
object: [
{ key: 'yourObjectName1' }, // 最初のオブジェクト名。
{ key: 'yourObjectName2' }, // 2 番目のオブジェクト名。
{ key: 'yourObjectName3' }, // 3 番目のオブジェクト名。
],
},
});
// 削除の結果を表示します。
console.log(JSON.stringify(res));
} catch (err) {
// 例外をキャッチします。
if (err instanceof RequestError) {
// 既知のタイプのエラーが存在する場合は、エラーコード、エラーメッセージ、リクエスト ID、HTTP ステータスコード、EC などの情報を表示します。
console.log('code: ', err.code); // エラーコード。
console.log('message: ', err.message); // エラーメッセージ。
console.log('requestId: ', err.requestId); // リクエスト ID。
console.log('status: ', err.status); // HTTP ステータスコード。
console.log('ec: ', err.ec); // EC。
} else {
// その他の不明なタイプのエラーを表示します。
console.log('unknown error: ', err);
}
}
};
// deleteMultipleObjects 関数を呼び出して、削除を実行します。
deleteMultipleObjects();