您可以通過replication命令管理資料複製(包括同地區和資料複製)規則配置。規則配置完成後,OSS會根據指定規則將源Bucket內的Object複製到相同或不同地區的目標Bucket。
注意事項
要添加複製規則或開啟RTC,您必須具有
oss:PutBucketReplication
許可權;要查看資料複製配置,您必須具有oss:GetBucketReplication
許可權;要刪除資料複製配置,您必須具有oss:DeleteBucketReplication
許可權;要擷取資料複製進度,您必須具有oss:GetBucketReplicationProgress
許可權;要擷取可複製到的目標儲存空間所在的地區,您必須具有oss:GetBucketReplicationLocation
許可權。具體操作,請參見為RAM使用者授權自訂的權限原則。從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考。
添加複製規則
您可以通過資料複製規則將源Bucket中的資料同步到多個目標Bucket。單個Bucket關聯的複製規則數量不能超過100條。關於資料複製的更多資訊,請參見跨地區複製概述。
要添加資料複製規則,首先要建立本地檔案並在檔案中添加資料複製規則,然後將資料複製規則添加到源Bucket。
命令格式
ossutil replication --method put oss://bucketname local_xml_file
參數說明如下:
參數
說明
bucketname
待添加資料複製規則的源Bucket名稱。
local_xml_file
配置資料複製規則的本地檔案名稱,例如
localfile.xml
。關於配置參數的更多資訊,請參見PutBucketReplication。
使用樣本
在本地建立名為
localfile.xml
檔案,並根據使用情境配置資料複製規則。將源Bucket內與指定首碼srcdir匹配檔案的增和改操作,同步到華東1(杭州)地區下名為destbucket的目標Bucket。此外,指定進行資料複製時開啟傳輸加速,且同步歷史資料。
<?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)功能
您可以基於新建立或已有的跨地區複製任務開啟RTC。您可以對整個Bucket的資料複製任務開啟RTC,也可以選擇對Bucket內指定首碼或者標籤的資料複製任務開啟RTC。
命令格式
ossutil replication --method put --item rtc oss://bucketname local_xml_file
參數說明如下:
參數
說明
bucketname
待開啟或關閉資料複製時間控制(RTC)功能的源Bucket名稱。
local_xml_file
配置開啟或關閉資料複製時間控制(RTC)功能的本地檔案名稱,例如
localfile.xml
。關於配置參數的更多資訊,請參見PutBucketReplication。
使用樣本
配置本地檔案local.xml。
開啟資料複製時間控制(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
查詢指定Bucket的資料複製進度
命令格式
ossutil replication --method get --item progress oss://bucketname [ruleID]
參數及選項說明如下:
參數
說明
bucketname
待擷取資料複製進度的Bucket名稱。
ruleID
查詢指定ruleID對應的資料複製進度。如果不指定ruleID,則查詢Bucket所有關聯的資料複製進度。目前只支援將資料複製進度輸出到螢幕上。
使用樣本
擷取srcbucket指定ruleID對應的資料複製進度。
ossutil replication --method get --item progress oss://srcbucket 37417af4-f2dc-4b24-92d3-82092af6****
擷取srcbucket所有關聯規則的資料複製進度。
ossutil replication --method get --item progress oss://srcbucket
以下輸出結果表明源儲存空間srcbucket在開啟資料複製前已有的資料複製到目標Bucket的進度為100%,在開啟資料複製後,早於時間點(2021-08-09T06:00:59.000Z)寫入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指定ruleID關聯的資料複製配置。
ossutil replication --method delete oss://srcbucket 37417af4-f2dc-4b24-92d3-82092af6****
以下輸出結果表明已成功刪除指定ruleID關聯的資料複製配置。
0.069195(s) elapsed
通用選項
當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。
例如您需要為另一個阿里雲帳號下,華東2(上海)地區下的testbucket配置資料複製規則,資料複製規則通過本地檔案localfile.txt進行配置。命令如下:
ossutil replication --method put oss://testbucket localfile.txt -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關於此命令的其他通用選項的更多資訊,請參見通用選項。