バケットタグを使用すると、バケットを分類および管理できます。 たとえば、ListBucket操作を呼び出すときに、特定のタグを持つバケットのみを一覧表示するように指定できます。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba Cloudサービスを使用してOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSでサポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSecurity Token Service (STS) を使用してOSSClientインスタンスを作成する場合は、「OSSClientインスタンスの作成」をご参照ください。
バケットのタグを設定できるのは、バケット所有者と
oss:PutBucketTagging
権限を付与されたユーザーのみです。 他のユーザーがバケットのタグを設定しようとすると、AccessDeniedエラーコードを含む403 Forbiddenメッセージが返されます。バケットごとに最大20個のタグ (キーと値のペア) を設定できます。
タグのキーと値はUTF-8でエンコードする必要があります。
キーの長さは最大64文字です。 大文字と小文字が区別され、空にすることはできません。 キーの先頭を
http://
、https://
、Aliyun
にすることはできません。 これらのプレフィックスは大文字と小文字を区別しません。タグの値は最大128文字で、空にすることができます。
バケットのタグの設定
次のコードは、バケットのタグを設定する方法の例を示しています。
const OSS = require('ali-OSS ')
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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
});
// バケットのタグを設定します。
async関数putBucketTags(bucketName, tag) {
try {
const result = await client.putBucketTags(bucketName, tag);
console.log (結果);
} catch (e) {
console.log(e);
}
}
const tag = { a: '1', b: '2' };
putBucketTags('bucketName' 、タグ)
バケットのタグを照会する
次のコードは、バケットのタグを照会する方法の例を示しています。
const OSS = require('ali-OSS ')
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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
});
// バケットのタグを照会します。
async関数getBucketTags(bucketName) {
try {
const result = await client.getBucketTags(bucketName);
console.log (結果);
} catch (e) {
console.log(e);
}
}
getBucketTags('bucketName')
特定のタグを持つバケットを一覧表示する
次のコードは、特定のタグを持つバケットを一覧表示する方法の例を示しています。
const OSS = require('ali-OSS ')
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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
});
// 特定のタグを持つバケットを一覧表示します。
async関数listBucketTags() {
try {
const params = {
// listBuckets操作のparamsパラメーターにtag-keyフィールドとtag-valueフィールドを追加します。
'tag-key': 'yourTagKey' 、
'tag-value': 'yourTagValue'
}
const result = await client.listBuckets(params);
console.log (結果);
} catch (err) {
console.log(err);
}
}
listBucketTags();
バケットのタグを削除する
次のコードは、バケットのタグを削除する方法の例を示しています。
const OSS = require('ali-OSS ')
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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
});
// バケットのタグを削除します。
async関数deleteBucketTags(bucketName) {
try {
const result = await client.de leteBucketTags(bucketName);
console.log (結果);
} catch (e) {
console.log(e);
}
}
deleteBucketTags('bucketName')
参考資料
バケットのタグの管理に使用される完全なサンプルコードについては、GitHubをご覧ください。
バケットのタグを設定するために呼び出すことができるAPI操作の詳細については、「PutBucketTags」をご参照ください。
バケットのタグを照会するために呼び出すことができるAPI操作の詳細については、「GetBucketTags」をご参照ください。
バケットのタグを削除するために呼び出すことができるAPI操作の詳細については、「DeleteBucketTags」をご参照ください。