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

:事前準備

最終更新日:Aug 29, 2026

データ移行タスクを開始する前に、以下の準備手順を完了してください。

ステップ1:リストファイルのアップロード

HTTP/HTTPS リストファイルは、スキーマを定義する manifest.json ファイルと、実際のファイルリストを含む 1 つ以上の .csv.gz ファイルの 2 つのコンポーネントで構成されます。各 .csv.gz ファイルは 100 MB を超えないようにしてください。

  1. CSV リストファイルの作成

    ローカルマシンで CSV 形式のリストファイルを作成します。各行は 1 つのファイルを表します。行は改行 (\n) で区切られ、各行内の列はカンマ (,) で区切られます。

    重要
    • [Key] と [Url] は必須です。その他のフィールドはすべてオプションです。

    • 各行は改行で終わる必要があります。改行がないと CSV 解析が失敗し、移行タスクが中断されます。

    • 必須項目

      名前

      必須

      説明

      注意事項

      Url

      はい

      Data Online Migration はこの URL を使用してファイルコンテンツをダウンロード (GET リクエスト) し、ファイルメタデータを取得 (HEAD リクエスト) します。

      説明

      [Url] は、curl --HEAD "$Url" や curl --GET "$Url" などのコマンドでアクセスできる必要があります。Data Online Migration は URL リダイレクトをサポートしていません。

      [Url] と [Key] の両方に特殊文字が含まれる場合は、URL エンコードする必要があります。エンコードしないと、移行が失敗する可能性があります。

      • [Url]:curl などのコマンドラインツールで (リダイレクトなしで) アクセスできるように URL を URL エンコードしてください。

      • [Key]:OSS 内のファイルの目的のオブジェクト名を URL エンコードしてください。

      重要

      エンコード後、以下を確認してください。そうしないと、移行が失敗したり、宛先のファイルパスが想定と異なったりする可能性があります。

      • 元の文字列のプラス記号 (+) は %2B としてエンコードされます。

      • 元の文字列のパーセント記号 (%) は %25 としてエンコードされます。

      • 元の文字列のカンマ (,) は %2C としてエンコードされます。

      たとえば、元の文字列 a+b%c,d.file は a%2Bb%25c%2Cd.file にエンコードされます。

      Key

      はい

      移行後の OSS 内のオブジェクト名。最終的な名前は prefix + Key 値 になります。たとえば、プレフィックスが backup/ で、Key が images/photo.jpg の場合、オブジェクトは backup/images/photo.jpg として保存されます。

      次の例は、plain_example.csv という名前のプレーン (エンコードされていない) CSV ファイルで、Url と Key の 2 つの列があります。URL は curl コマンドを使用して直接アクセスでき、Key 値は OSS 内の目的のオブジェクト名です。

      https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1354977961/p486238.jpg,assets/img/zh-CN/1354977961/p486238.jpg
      https://www.example-fake1.com/url-that-can-be-accessed-only-after-encoding/123.png,url-that-can-be-accessed-only-after-encoding/123.png
      https://www.example-fake2.com/url-that-can-be-accessed-without-encoding/123.png,url-that-can-be-accessed-without-encoding/123.png
      https://www.example-fake3.com/Chinese/Japanese/Korean/123.png,Chinese/Japanese/Korean/123.png
      重要

      Windows のメモ帳を使用して manifest.json や plain_example.csv を編集しないでください。メモ帳はファイルの最初の 3 バイトにバイトオーダーマーク (BOM) (0xefbbbf) を追加する可能性があり、Data Online Migration で解析エラーが発生します。Linux または macOS では、od -c plain_example.csv | less を実行して BOM が存在するかどうかを確認してください。Windows では、代わりに Notepad++ または Visual Studio Code を使用してください。

      URL やキーに特殊文字が含まれている場合は、使用前にエンコードしてください。次の Python スクリプトは、plain_example.csv を 1 行ずつ読み取り、URL エンコードされた出力を example.csv に書き込みます。

      # -*- coding: utf-8 -*-
      import sys
      
      if sys.version_info.major == 3:
          from urllib.parse import quote_plus
      else:
          from urllib import quote_plus
          reload(sys)
          sys.setdefaultencoding("utf-8")
      
      # ソース CSV ファイルのパス。
      src_path = "plain_example.csv"
      # URL エンコードされたファイルのパス。
      out_path = "example.csv"
      
      # サンプル CSV には url と key の 2 つの列のみが含まれます。
      with open(src_path) as fin, open(out_path, "w") as fout:
          for line in fin:
              items = line.strip().split(",")
              url, key = items[0], items[1]
              enc_url = quote_plus(url.encode("utf-8"))
              enc_key = quote_plus(key.encode("utf-8"))
              # enc_url と enc_key 変数はエンコードされた文字列です。
              fout.write(enc_url + "," + enc_key + "\n")
      

      スクリプトを実行すると、example.csv には次のエンコードされたコンテンツが含まれます。

      https%3A%2F%2Fhelp-static-aliyun-doc.aliyuncs.com%2Fassets%2Fimg%2Fzh-CN%2F1354977961%2Fp486238.jpg,assets%2Fimg%2Fzh-CN%2F1354977961%2Fp486238.jpg
      https%3A%2F%2Fwww.example-fake1.com%2Furl-that-can-be-accessed-only-after-encoding%2F123.png,url-that-can-be-accessed-only-after-encoding%2F123.png
      https%3A%2F%2Fwww.example-fake2.com%2Furl-that-can-be-accessed-without-encoding%2F123.png,url-that-can-be-accessed-without-encoding%2F123.png
      https%3A%2F%2Fwww.example-fake3.com%2FChinese%2FJapanese%2FKorean%2F123.png,Chinese%2FJapanese%2FKorean%2F123.png
    • すべての項目

      名前

      必須

      注意事項

      Key

      はい

      移行後の OSS 内のオブジェクト名。最終的な名前は prefix + Key 値 になります。

      Url

      はい

      Data Online Migration はこの URL を使用してファイルコンテンツをダウンロード (GET リクエスト) し、ファイルメタデータを取得 (HEAD リクエスト) します。

      Size

      いいえ

      移行するファイルのサイズ (バイト単位)。

      説明

      このフィールドは、移行されたファイルのストレージ使用量を計算するために使用されます。省略すると、コンソールのストレージ使用量グラフが利用できません。

      説明

      項目の順序は固定されていませんが、manifest.json の [fileSchema] フィールド内のフィールドの順序と一致する必要があります。

  2. CSV ファイルの圧縮

    gzip を使用して各 CSV ファイルを .csv.gz ファイルに圧縮します。

    • 単一ファイルの圧縮

      example.csv という名前の単一ファイルを圧縮するには、次のコマンドを実行します。

      gzip -c example.csv > example.csv.gz
      説明

      gzip コマンドで -c フラグを指定しないと、圧縮後にソースファイルが削除されます。ソースファイルを保持するには、gzip -c <source_file> > <source_file>.gz を使用してください。

      これにより、.csv.gz ファイルが生成されます。

    • 複数ファイルの圧縮

      ディレクトリ内のすべての CSV ファイルを圧縮するには (たとえば、dir ディレクトリ内の example1.csv、example2.csv、example3.csv)、次のコマンドを実行します。

      gzip -r dir
      説明

      gzip コマンドは、ディレクトリ内の各ファイルを個別に圧縮し、ディレクトリ自体をパッケージ化しません。ソースファイルは保持されません。

      これにより、dir ディレクトリ内に example1.csv.gz、example2.csv.gz、example3.csv.gz が生成されます。

  3. manifest.json ファイルの作成

    manifest.json ファイルはスキーマを定義し、すべての CSV リストファイルを参照します。次のフィールドを設定してください。

    • fileFormat:CSV に設定します。

    • fileSchema:CSV ファイル内の列名を、列と同じ順序でリストします。

      説明

      CSV ファイル内の列数は、fileSchema 内のフィールド数と一致する必要があります。移行サービスは、タスク作成時にこれを検証します。

    • files:CSV ファイルへの参照の配列。各エントリには次が含まれます。

      • key:バケット内の .csv.gz ファイルへのパス。

      • MD5checksum:32 桁の16進数 MD5 チェックサム文字列 (大文字と小文字は区別されません)。例:91A76757B25C8BE78BC321DEEBA6A5AD。チェックサムチェックをスキップするには、空白にします。

      • size:.csv.gz ファイルのサイズ。

    例:

    {
        "fileFormat":"CSV",
        "fileSchema":"Url, Key",
        "files":[{
            "key":"dir/example1.csv.gz",
            "MD5checksum":"",
            "size":0
        },{
            "key":"dir/example2.csv.gz",
            "MD5checksum":"",
            "size":0
        }]
    }
  4. マニフェストファイルを OSS または AWS S3 にアップロードします。

    1. manifest.json とすべての .csv.gz ファイルをアップロードします。バケット内のファイル名は、manifest.json で参照されているファイル名と一致する必要があります。

    2. manifest.json へのパスを記録してください。ソースデータアドレスを作成する際に、このパスを指定する必要があります。

ステップ 2: 移行先バケットの作成

移行データを保存するための送信先バケットを作成します。詳細については、「バケットの作成」をご参照ください。

ステップ 3: RAM ユーザーの作成と権限付与

重要
  • この RAM ユーザーを使用してロールを作成し、移行タスクを実行する必要があります。この RAM ユーザーは、ソースバケットまたは送信先バケットを所有する Alibaba Cloud アカウントで作成することを推奨します。

  • RAM ユーザーの作成については、「クイックスタート:RAMユーザーの作成と権限付与」をご参照ください。

Alibaba Cloud アカウントで RAM コンソールにログオンします。[ユーザー] ページで、作成した RAM ユーザーを見つけ、[アクション] 列の [権限の追加] をクリックします。

  1. システムポリシー: オンライン移行サービスの管理権限 (AliyunOSSImportFullAccess)。

  2. カスタムポリシー: このポリシーには、ram:CreateRole、ram:CreatePolicy、ram:AttachPolicyToRole、ram:ListRoles の権限が必要です。

    権限の管理方法の詳細については、「カスタムポリシーの作成」をご参照ください。以下はサンプルポリシーです。

    {
        "Version":"1",
        "Statement":[
            {
                "Effect":"Allow",
                "Action":[
                    "ram:CreateRole",
                    "ram:CreatePolicy",
                    "ram:AttachPolicyToRole",
                    "ram:ListRoles"
                ],
                "Resource":"*"
            }
        ]
    }

ステップ4:インベントリバケットへのアクセス許可の付与

インベントリバケットがお客様のアカウントに属しているかどうかによって手順が異なります。

お客様のアカウント内のインベントリバケット

  • ワンクリック権限付与

    Data Online Migration コンソールのワンクリック権限付与機能を使用することを推奨します。このオプションは、[Migration Implementation] > [Step 2] > [Authorize List Role] にあります。

  • 手動権限付与

    インベントリバケット権限の付与

    ロール ページで、作成した RAM ロールを見つけ、[Actions] 列の [Add Permissions] をクリックします。

    • カスタムポリシー: このポリシーには、oss:List* および oss:Get* 権限が含まれている必要があります。

    カスタムポリシーの作成方法の詳細については、「カスタムポリシーの作成」をご参照ください。以下にポリシーの例を示します。

    説明

    これはポリシーの例です。<myInvBucket> を実際のインベントリバケットの名前に置き換えてください。

    OSS の権限ポリシーの詳細については、「RAM ポリシーの一般的な例」をご参照ください。

    重要

    インベントリバケットに KMS で暗号化されたオブジェクトが含まれている場合は、AliyunKMSFullAccess システムポリシーも RAM ロールにアタッチする必要があります。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:List*",
            "oss:Get*"
          ],
          "Resource": [
            "acs:oss:*:*:<myInvBucket>",
            "acs:oss:*:*:<myInvBucket>/*"
          ]
        }
      ]
    }

他のアカウントのインベントリバケット

インベントリバケット権限の付与

  1. インベントリバケットを所有する Alibaba Cloud アカウントで OSS コンソール にログインします。

  2. 左側のナビゲーションペインで、バケット をクリックし、インベントリバケットの名前をクリックします。

  3. 左側のナビゲーションペインで、権限管理 > バケット承認ポリシー を選択します。

  4. 構文で追加 タブで、編集 をクリックして、次のバケットポリシーを追加します。

  • カスタムポリシー:

    RAM ロールに、バケット内のすべてのリソースを一覧表示および読み取りする権限を付与します。

    説明

    これはポリシーの例です。プレースホルダーを実際の値に置き換えます。<otherInvBucket> をインベントリバケット名に、<myuid> を Data Online Migration コンソールへのアクセスに使用するアカウントのAlibaba Cloud アカウント ID に、<otherUid> を[Alibaba Cloud アカウント ID] (インベントリバケット所有者の) に、<roleName> を[ロール名] (作成した) に置き換えます。OSS 権限ポリシーの詳細については、「RAM ポリシーの一般的な例」をご参照ください。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:List*",
            "oss:Get*"
          ],
          "Principal": [
             "arn:sts::<myUid>:assumed-role/<roleName>/*"
          ],
          "Resource": [
            "acs:oss:*:<otherUid>:<otherInvBucket>",
            "acs:oss:*:<otherUid>:<otherInvBucket>/*"
          ]
        }
      ]
    }

2. KMS 権限の付与

  1. インベントリバケットに KMS で暗号化されたオブジェクトが含まれている場合は、AliyunKMSFullAccess システムポリシーも RAM ロールにアタッチする必要があります。

  2. インベントリバケット内のオブジェクトがカスタマーマネージドキーで暗号化されている場合は、次の手順に従って、そのキーへのアクセス権を RAM ロールに付与します。

    1. Key Management Service コンソールにログインし、キーを見つけます。

    2. Key Policy を設定し、[他のアカウントのユーザー] を選択して、プリンシパル ARN を入力します。 詳細については、「キーポリシーの設定」をご参照ください。 [キーポリシー] をクリックします。 表示されるパネルで、RAM ユーザーまたは RAM ロール名で検索して選択し、[管理者] と [ユーザー] を設定します。 [他のアカウントのユーザー] セクションで、プリンシパル ARN を acs:ram::<userId>:role/<ramrole> または acs:ram::<userId>:user/<ramuser> の形式で入力します。 [プリンシパル ARN の追加] をクリックして、複数の ARN を追加します。

ステップ5:宛先バケットへのアクセス許可の付与

送信先バケットの所有者に応じて、以下の手順に従ってください。

同一アカウント内の移行先

  • 自動権限付与

    データオンライン移行 コンソールで 自動ロール権限付与 を使用します: [移行の実装] > [ステップ 3] > [ロールの権限付与]。

  • 手動権限付与

    説明

    次の場合に手動権限付与を使用してください。

    • 単一の RAM ロールで複数の移行元バケットを管理する場合。

    • アカウントが RAM ロールの上限に近い場合。

    • 自動権限付与が適切でない、または利用できない場合。

    1. RAM ロールの作成

    RAM コンソールにログオンし、ロールページに移動して、[ロールの作成] をクリックします。

    1. [信頼できるエンティティを選択] には、[Alibaba Cloud サービス] を選択します。

    2. [ロールタイプ] には、[データ転送] を選択します。

    3. [ロール名] を入力します。名前はすべて小文字にする必要があります。

    たとえば、role-test と入力します。 ロール名は最大 64 文字で、英字、数字、ハイフン (-)、およびピリオド (.) を使用できます。 名前を入力したら、[OK] をクリックします。

    2. RAM ロールへの権限付与

    [ロール] ページで、RAM ロールを見つけ、[アクション] 列の [権限の追加] をクリックします。

    • 次の権限を持つカスタムポリシーを作成してアタッチします: oss:List*、oss:Get*、oss:Put*、および oss:AbortMultipartUpload。

    「カスタムポリシーの作成」をご参照ください。ポリシーの例:

    説明

    <myDestBucket> を移行先バケット名に置き換えてください。

    「RAM ポリシーの一般的な例」をご参照ください。

    重要

    移行先バケットが SSE-KMS 暗号化を使用している場合、RAM ロールに AliyunKMSFullAccess システムポリシーもアタッチする必要があります。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:List*",
            "oss:Get*",
            "oss:Put*",
            "oss:AbortMultipartUpload"
          ],
          "Resource": [
            "acs:oss:*:*:<myDestBucket>",
            "acs:oss:*:*:<myDestBucket>/*"
          ]
        }
      ]
    }

異なるアカウントの移行先

1. RAM ロールの作成

移行に使用する Alibaba Cloud アカウントで RAM コンソールにログインし、ロールページに移動して、[ロールの作成] をクリックします。

  1. [信頼できるエンティティの選択] には、[Alibaba Cloud サービス] を選択します。

  2. [ロールタイプ] には、[データ転送] を選択します。

  3. [ロール名] を入力します。 名前はすべて小文字にする必要があります。

たとえば role-test と入力します。 ロール名は最大 64 文字で、英字、数字、ハイフン (-)、ピリオド (.) を含めることができます。 名前を入力したら、 [OK] をクリックします。

2. 移行先バケットの権限付与

重要

新しいバケットポリシーは既存のポリシーを上書きします。既存の権限を保持するには、以前のすべてのステートメントを含めてください。

  1. 移行先バケットを所有する Alibaba Cloud アカウントを使用して、OSS コンソールにログインします。

  2. 左側のナビゲーションペインで、バケット をクリックします。「バケット」ページで、宛先バケットの名前をクリックします。

  3. 左側のナビゲーションペインで、権限管理 > バケット承認ポリシー を選択します。

  4. 構文で追加 タブで、編集 をクリックしてカスタムバケットポリシーを定義します。

    • RAM ロールに、バケット内のすべてのオブジェクトのリスト、読み取り、書き込みを行う権限を付与します。

説明

<otherDestBucket> を [宛先バケットの名前] に、<otherUid> を宛先バケットを所有する [Alibaba Cloud アカウントの UID] に、<myUid> を [移行コンソールの Alibaba Cloud アカウントの UID] に、<roleName> を上記で作成した [ロールの名前] に置き換えます。RAM ポリシーの一般的な例。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:List*",
        "oss:Get*",
        "oss:Put*",
        "oss:AbortMultipartUpload"
      ],
      "Principal": [
         "arn:sts::<myUid>:assumed-role/<roleName>/*"
      ],
      "Resource": [
        "acs:oss:*:<otherUid>:<otherDestBucket>",
        "acs:oss:*:<otherUid>:<otherDestBucket>/*"
      ]
    }
  ]
}
3. KMS 権限付与
  1. 移行先バケットが SSE-KMS 暗号化を使用している場合、移行に使用するアカウントの RAM ロールに AliyunKMSFullAccess システムポリシーもアタッチする必要があります。

  2. 移行先バケットがカスタム KMS キーを使用している場合、RAM ロールにキーへのアクセス権を付与してください。

    1. KMS コンソールにログインし、キーを見つけてください。

    2. [キーポリシー] を設定します。[他のアカウントのユーザー] を選択し、承認されたプリンシパルの ARN を入力します。キーポリシーを設定する。

      [キーポリシー] ダイアログボックスで、次の承認済みプリンシパルを設定します。

      • [主要管理者]: RAM ユーザーまたは RAM ロールの名前を入力して検索し、追加します。

      • [キーユーザー]: RAM ユーザーまたは RAM ロールの名前を入力して検索し、追加します。

      • [他のアカウントのキーユーザー]: 承認されたプリンシパルの ARN を acs:ram::<userId>:role/<ramrole> または acs:ram::<userId>:user/<ramuser> のフォーマットで入力し、[他のアカウントのキーユーザーの ARN を追加] をクリックして複数のエントリを追加します。