オブジェクトに対して操作を実行する前に、そのオブジェクトがバケットに存在するかどうかを確認できます。
次のコードは、オブジェクトが存在するかどうかを確認する方法を示しています。
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,
authorizationV4: true,
// yourBucketName を、ご利用のバケット名に設定します。
bucket: 'yourBucketName',
});
async function isExistObject(name, options = {}) {
try {
await client.head(name, options);
console.log('オブジェクトは存在します。')
} catch (error) {
if (error.code === 'NoSuchKey') {
console.log('オブジェクトは存在しません。')
}
}
}
// バージョン管理が無効になっているバケット内にオブジェクトが存在するかどうかを確認します。
// yourObjectName を、オブジェクトの完全なパスに設定します。 パスにバケット名を含めることはできません。 例:example/test.txt。
const name = 'yourObjectName'
isExistObject(name)
// バージョン管理が有効なバケットに、指定されたバージョン ID のオブジェクトが存在するかどうかを確認します。
const options = {
// YourObjectVersionId を、オブジェクトのバージョン ID に設定します。
versionId: 'YourObjectVersionId'
}
isExistObject(name, options)