replication コマンドを実行することで、データレプリケーションルールを管理できます。データレプリケーションルールは、クロスリージョンレプリケーション (CRR) ルールと同一リージョンレプリケーション (SRR) ルールに分類されます。データレプリケーションルールを構成すると、Object Storage Service (OSS) は、データレプリケーションルールに基づいて、ソースバケット内のオブジェクトを同じリージョンまたは異なるリージョンにあるデスティネーションバケットにレプリケートします。
注意事項
データレプリケーションルールを作成したり、バケットの Replication Time Control (RTC) を有効にするには、
oss:PutBucketReplication権限が必要です。バケットのデータレプリケーションルールを照会するには、oss:GetBucketReplication権限が必要です。バケットのデータレプリケーションルールを削除するには、oss:DeleteBucketReplication権限が必要です。バケットで実行されたデータレプリケーショ ンタスクのデータレプリケーションの進捗状況を照会するには、oss:GetBucketReplicationProgress権限が必要です。データをレプリケートできるバケットのリージョンを照会するには、oss:GetBucketReplicationLocation権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。ossutil 1.6.16 以降では、コマンドラインでバイナリ名として ossutil を直接使用できます。オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 ossutil 1.6.16 より前のバージョンでは、オペレーティングシステムに基づいてバイナリ名を更新する必要があります。詳細については、「ossutil コマンドリファレンス」をご参照ください。
データレプリケーションルールの追加
データレプリケーションルールを使用すると、ソースバケットから 1 つ以上のデスティネーションバケットにデータをレプリケートできます。 1 つのバケットに対して最大 100 個のデータレプリケーションルールを構成できます。データレプリケーションの詳細については、「CRR」をご参照ください。
データレプリケーションルールを追加するには、まずローカルファイルを作成し、そのファイルに追加するデータレプリケーションルールを指定する必要があります。次に、データレプリケーションルールをソースバケットに追加します。
コマンド構文
ossutil replication --method put oss://bucketname local_xml_file次の表は、上記のコマンドのパラメーターについて説明しています。
パラメーター
説明
bucketname
データレプリケーションルールを作成するバケットの名前。
local_xml_file
データレプリケーションルールが保存されているローカルファイルの名前。例:
localfile.xml。詳細については、「PutBucketReplication」をご参照ください。
例
ローカルコンピューターに
localfile.xmlという名前のファイルを作成し、ビジネス要件に基づいてファイルにデータレプリケーションルールを構成します。次のコードは、データレプリケーションルールを構成する方法の例を示しています。このルールにより、ソースバケット内の srcdir プレフィックスを含む名前のオブジェクトに対して実行された作成および変更操作を、中国 (杭州) リージョンにある destbucket という名前のデスティネーションバケットにレプリケートできます。さらに、このルールでは、転送アクセラレーションが有効になっており、既存データがデスティネーションバケットにレプリケートされることも指定しています。
<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration> <Rule> <PrefixSet> <Prefix>srcdir</Prefix> </PrefixSet> <Action>PUT</Action> <Destination> <Bucket>destbucket</Bucket> <Location>oss-cn-hangzhou</Location> <TransferType>oss_acc</TransferType> </Destination> <HistoricalObjectReplication>enabled</HistoricalObjectReplication> </Rule> </ReplicationConfiguration>srcbucket という名前のソースバケットにデータレプリケーションルールを追加します。
ossutil replication --method put oss://srcbucket localfile.xml
出力例
次の出力は、srcbucket バケットに対してデータレプリケーションルールが作成されたことを示しています。
0.856895(s) elapsed
RTC の有効化または無効化
CRR タスクの構成時に Replication Time Control (RTC) を有効にできます。既存の CRR タスクに対して RTC を有効にすることもできます。バケット内のすべてのオブジェクトをレプリケートする場合、または特定のタグが付いたオブジェクトや名前が特定のプレフィックスを含むオブジェクトをレプリケートする場合に、CRR タスクに対して RTC を有効にできます。
コマンド構文
ossutil replication --method put --item rtc oss://bucketname local_xml_file次の表は、上記のコマンドのパラメーターについて説明しています。
パラメーター
説明
bucketname
RTC を有効または無効にするソースバケットの名前。
local_xml_file
RTC 構成を保存するローカルファイルの名前。例:
localfile.xml。詳細については、「PutBucketReplication」をご参照ください。
例
ローカルファイルを構成します。
RTC を有効にする
<?xml version="1.0" encoding="UTF-8"?> <ReplicationRule> <RTC> <Status>enabled</Status> </RTC> <ID>test-replication-id</ID> </ReplicationRule>RTC を無効にする
<?xml version="1.0" encoding="UTF-8"?> <ReplicationRule> <RTC> <Status>disabled</Status> </RTC> <ID>test-replication-id</ID> </ReplicationRule>
srcbucket という名前のソースバケットに対して RTC を有効または無効にします。
ossutil replication --method put --item rtc oss://srcbucket local.xml
出力例
0.856895(s) elapsed
バケットのデータレプリケーションルールの照会
コマンド構文
ossutil replication --method get oss://bucketname例
次のコマンドを実行して、srcbucket バケットのデータレプリケーションルールを照会して表示できます。
ossutil replication --method get oss://srcbucket次の出力例は、srcbucket バケットのデータレプリケーションルールが照会されたことを示しています。
<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration> <Rule> <ID>37417af4-f2dc-4b24-92d3-82092af6****</ID> <Action>ALL</Action> <Destination> <Bucket>destbucket</Bucket> <Location>oss-cn-beijing</Location> </Destination> <Status>doing</Status> <HistoricalObjectReplication>enabled</HistoricalObjectReplication> </Rule> </ReplicationConfiguration> 0.069195(s) elapsed
データをレプリケートできるリージョンの照会
コマンド構文
ossutil replication --method get --item location oss://bucketname例
次のコマンドを実行して、srcbucket バケット内のデータをレプリケートできるバケットのリージョンを照会できます。
ossutil replication --method get --item location oss://srcbucket次の出力例は、データをレプリケートできるバケットのリージョンが照会されたことを示しています。
<?xml version="1.0" ?> <ReplicationLocation> <Location>oss-cn-beijing</Location> <Location>oss-cn-qingdao</Location> <Location>oss-cn-shenzhen</Location> <Location>oss-cn-hongkong</Location> <Location>oss-us-west-1</Location> <LocationTransferTypeConstraint> <LocationTransferType> <Location>oss-cn-hongkong</Location> <TransferTypes> <Type>oss_acc</Type> </TransferTypes> </LocationTransferType> <LocationTransferType> <Location>oss-us-west-1</Location> <TransferTypes> <Type>oss_acc</Type> </TransferTypes> </LocationTransferType> </LocationTransferTypeConstraint> </ReplicationLocation> 0.226523(s) elapsed
バケットで実行されたデータレプリケーショ ンタスクの進捗状況の照会
コマンド構文
ossutil replication --method get --item progress oss://bucketname [ruleID]次の表は、上記のコマンドのパラメーターについて説明しています。
パラメーター
説明
bucketname
データレプリケーションの進捗状況を照会するバケットの名前。
ruleID
データレプリケーションルールの ID。ルール ID を指定すると、ルールに関連付けられたレプリケーションの進捗状況が照会されます。ルール ID を指定しない場合、バケットのすべてのデータレプリケーションルールに関連付けられたレプリケーションの進捗状況が照会されます。レプリケーションの進捗状況は画面にのみ表示できます。
例
次のコマンドを実行して、srcbucket バケットの特定のデータレプリケーションルールに関連付けられたデータレプリケーションの進捗状況を照会できます。
ossutil replication --method get --item progress oss://srcbucket 37417af4-f2dc-4b24-92d3-82092af6****次のコマンドを実行して、srcbucket バケットのすべてのデータレプリケーションルールに関連付けられたデータレプリケーションの進捗状況を照会できます。
ossutil replication --method get --item progress oss://srcbucket次の出力が表示された場合、データレプリケーションが有効になる前に srcbucket バケットから destbucket バケットに既存データをレプリケートする進捗状況は 100% です。データレプリケーションが有効になった後、2021 年 8 月 9 日 06:00:59 (UTC + 08:00) より前に srcbucket バケットに書き込まれたデータは、destbucket という名前のデスティネーションバケットにレプリケートされます。
<?xml version="1.0" encoding="UTF-8"?> <ReplicationProgress> <Rule> <ID>37417af4-f2dc-4b24-92d3-82092af6****</ID> <Action>ALL</Action> <Destination> <Bucket>destbucket</Bucket> <Location>oss-cn-beijing</Location> </Destination> <Status>doing</Status> <HistoricalObjectReplication>enabled</HistoricalObjectReplication> <Progress> <HistoricalObject>1.00</HistoricalObject> <NewObject>2021-08-09T06:00:59.000Z</NewObject> </Progress> </Rule> </ReplicationProgress> 0.125002(s) elapsed
データレプリケーションルールの削除
コマンド構文
ossutil replication --method delete oss://bucketname ruleID例
次のコマンドを実行して、srcbucket バケットに構成されている特定のデータレプリケーションルールを削除できます。
ossutil replication --method delete oss://srcbucket 37417af4-f2dc-4b24-92d3-82092af6****次の出力例は、指定されたデータレプリケーションルールが削除されたことを示しています。
0.069195(s) elapsed
共通オプション
ossutil を使用して別のリージョンにあるバケットに切り替える場合は、-e オプションを追加して、バケットがあるリージョンのエンドポイントを指定します。 ossutil を使用して別の Alibaba Cloud アカウントに属するバケットに切り替える場合は、-i オプションを追加して指定したアカウントの AccessKey ID を指定し、-k オプションを追加して指定したアカウントの AccessKey シークレットを指定します。
たとえば、次のコマンドを実行して、中国 (上海) リージョンにあり、別の Alibaba Cloud アカウントが所有する testbucket バケットの localfile.txt ファイルにデータレプリケーションルールを作成できます。例:
ossutil replication --method put oss://testbucket localfile.txt -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret共通オプションの詳細については、「共通オプション」をご参照ください。