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