すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:CloudBox のオブジェクトタグ

最終更新日:Nov 09, 2025

クラウドボックスの OSS では、タグを使用してクラウドボックスの OSS バケット内のオブジェクトを分類できます。これらのタグに基づいて、オブジェクトのライフサイクルルールとアクセス権限を設定できます。

タグ付けルール

オブジェクトタグは、オブジェクトをマークするために使用できるキーと値のペアです。オブジェクトのアップロード時、または既存のオブジェクトにタグを追加できます。

  • オブジェクトには最大 10 個のタグを追加できます。タグのキーは一意である必要があります。

  • キーの長さは最大 128 文字です。値の長さは最大 256 文字です。

  • キーと値では大文字と小文字が区別されます。

  • タグには、文字、数字、スペース、および次の特殊文字を含めることができます: +‑=._:/

  • HTTP ヘッダーを使用してタグを設定する場合、タグのキーと値を URL エンコードする必要があります。

使用上の注意

  • バケットのオーナーと oss-cloudbox:PutObjectTagging 権限を持つユーザーのみがオブジェクトタグを追加または変更できます。

  • 単純なアップロード、マルチパートアップロード、追加アップロード、またはコピー操作中にオブジェクトにタグを追加できます。既存のオブジェクトにタグを追加することもできます。

  • オブジェクトのタグを変更しても、オブジェクトの Last-Modified 時間は更新されません。

シナリオ

  • ライフサイクルルールでオブジェクトタグを使用する

    定期的に生成され、長期保存を必要としないオブジェクトの場合、アップロード時にタグを追加できます。その後、ライフサイクルルールを使用してこれらのオブジェクトを定期的に削除し、ストレージコストを節約できます。たとえば、`dir1` プレフィックスと `key1:value1` タグを持つオブジェクトを、最終変更日から 30 日後に削除するライフサイクルルールを設定できます。次のコードは設定例です:

    <LifecycleConfiguration>
     <Rule>
      <ID>rule1</ID>
      <Prefix>dir1</Prefix>
      <Tag><Key>key1</Key><Value>value1</Value></Tag>
      <Status>Enabled</Status>
      <Expiration>
        <Days>30</Days>
      </Expiration>
     </Rule>
    </LifecycleConfiguration>
  • 特定のタグを持つオブジェクトにアクセスする権限を RAM ユーザーに付与する

    RAM ポリシーを設定して、examplebucket という名前のクラウドボックスの OSS バケット内で status:ok および key1:value1 タグを持つオブジェクトにアクセスする権限を RAM ユーザーに付与できます。CloudBox の ID は cb-f8z7yvzgwfkl9q0h**** です。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "oss-cloudbox:GetObject"
                ],
                "Resource": [
                    "acs:oss-cloudbox:*:174649585760****:cloudbox/cb-f8z7yvzgwfkl9q0h****/bucket/examplebucket/*"
                ],
                "Condition": {
                    "StringEquals": {
                        "oss-cloudbox:ExistingObjectTag/status":"ok",
                        "oss-cloudbox:ExistingObjectTag/key1":"value1"
                    }
                }
            }
        ]
    }
    

手順

Alibaba Cloud SDK の使用

Java SDK を使用して、単純なアップロード中にのみタグを追加できます。Java SDK はバージョン 3.15.0 以降である必要があります。

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
import java.io.ByteArrayInputStream;
import java.util.HashMap;
import java.util.Map;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;

public class Demo {
    public static void main(String[] args) throws Exception {
        // クラウドボックスの OSS バケットのデータエンドポイントを指定します。
        String endpoint = "https://cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com";
        // 環境変数からアクセス資格情報を取得します。このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // クラウドボックスの OSS バケットの名前 (例: examplebucket) を指定します。
        String bucketName = "examplebucket";
        // クラウドボックスの OSS バケットが配置されているリージョンを指定します。
        String region = "cn-hangzhou";
        // CloudBox ID を指定します。
        String cloudBoxId = "cb-f8z7yvzgwfkl9q0h****";
        // オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません。例: exampledir/exampleobject.txt。
        String objectName = "exampledir/exampleobject.txt";

        // OSSClient インスタンスを作成します。
        // OSSClient インスタンスが不要になったら、shutdown メソッドを呼び出してリソースを解放します。
        ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
        conf.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
                .clientConfiguration(conf)
                .region(region)
                .cloudBoxId(cloudBoxId)
                .build();

        try {
            Map<String, String> tags = new HashMap<String, String>();
            // タグキー (owner など) とタグ値 (John など) を指定します。
            tags.put("owner", "John");
            tags.put("type", "document");

            // HTTP ヘッダーにタグ情報を設定します。
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setObjectTagging(tags);

            // アップロードするオブジェクトのコンテンツを設定します。
            String content = "yourContent";
            ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes()), metadata);
        } catch (OSSException oe) {
            System.out.println("OSSException がキャッチされました。これは、リクエストが OSS に到達したものの、"
                    + "何らかの理由でエラー応答で拒否されたことを意味します。");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("ClientException がキャッチされました。これは、クライアントが OSS との通信中に、"
                    + "ネットワークにアクセスできないなどの深刻な内部問題に遭遇したことを意味します。");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

ossutil の使用

ossutil を使用してオブジェクトタグを追加する方法の詳細については、「put-object-tagging」をご参照ください。

REST API の使用

高度なカスタマイズ要件がある場合は、REST API リクエストを直接行うことができます。これには、署名を計算するためのコードを手動で記述する必要があります。詳細については、「PutObjectTagging」をご参照ください。