バケットタグを使用すると、バケットを分類および管理できます。 たとえば、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({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of your bucket.
bucket: 'yourBucketName',
});
// Configure tags for the bucket.
async function putBucketTags(bucketName, tag) {
try {
const result = await client.putBucketTags(bucketName, tag);
console.log(result);
} catch (e) {
console.log(e);
}
}
const tag = { a: '1', b: '2' };
putBucketTags('bucketName', tag)
バケットのタグを照会する
次のコードは、バケットのタグを照会する方法の例を示しています。
const OSS = require('ali-oss')
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of your bucket.
bucket: 'yourBucketName',
});
// Query the tags of the bucket.
async function getBucketTags(bucketName) {
try {
const result = await client.getBucketTags(bucketName);
console.log(result);
} catch (e) {
console.log(e);
}
}
getBucketTags('bucketName')
特定のタグを持つバケットを一覧表示する
次のコードは、特定のタグを持つバケットを一覧表示する方法の例を示しています。
const OSS = require('ali-oss')
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of your bucket.
bucket: 'yourBucketName',
});
// List the buckets that have a specific tag.
async function listBucketTags() {
try {
const params = {
// Add the tag-key and tag-value fields to the params parameter in the listBuckets operation.
'tag-key': 'yourTagKey',
'tag-value': 'yourTagValue'
}
const result = await client.listBuckets(params);
console.log(result);
} catch (err) {
console.log(err);
}
}
listBucketTags();
バケットのタグを削除する
次のコードは、バケットのタグを削除する方法の例を示しています。
const OSS = require('ali-oss')
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of your bucket.
bucket: 'yourBucketName',
});
// Delete the tags of the bucket.
async function deleteBucketTags(bucketName) {
try {
const result = await client.deleteBucketTags(bucketName);
console.log(result);
} catch (e) {
console.log(e);
}
}
deleteBucketTags('bucketName')
関連ドキュメント
バケットのタグの管理に使用される完全なサンプルコードについては、GitHubをご覧ください。
バケットのタグを設定するために呼び出すことができるAPI操作の詳細については、「PutBucketTags」をご参照ください。
バケットのタグを照会するために呼び出すことができるAPI操作の詳細については、「GetBucketTags」をご参照ください。
バケットのタグを削除するために呼び出すことができるAPI操作の詳細については、「DeleteBucketTags」をご参照ください。