全部产品
Search
文档中心

Data Online Migration:Persiapan

更新时间:Nov 11, 2025

Topik ini menjelaskan persiapan yang diperlukan sebelum migrasi data.

Langkah 1: Unggah file daftar

File daftar HTTP/HTTPS mencakup dua jenis file: file manifest.json dan satu atau beberapa file example.csv.gz. File example.csv.gz adalah file daftar CSV terkompresi dengan ukuran maksimum 100 MB per file. File manifest.json mendefinisikan skema manifes dan serangkaian file CSV.

  1. Buat file daftar CSV

    Buat file daftar berformat CSV di mesin lokal Anda. Setiap baris merepresentasikan satu file, dipisahkan oleh line feed (\n), dan setiap file memiliki beberapa properti yang dipisahkan koma (,).

    Penting
    • Key dan Url wajib diisi; item lainnya bersifat opsional.

    • Setiap baris harus diakhiri dengan line feed. Jika tidak, tugas dapat terganggu akibat kegagalan penguraian CSV.

    • Item wajib

      Nama

      Wajib

      Deskripsi

      Catatan

      Url

      Ya

      Data Online Migration menggunakan tautan ini untuk mengunduh konten file dengan permintaan GET dan untuk mendapatkan metadata file dengan permintaan HEAD.

      Catatan

      Pastikan bahwa Url dapat diakses melalui perintah seperti `curl --HEAD "$Url"` dan `curl --GET "$Url"`. Data Online Migration tidak mendukung pengalihan untuk `$Url`.

      Item Url dan Key harus dikodekan. Jika tidak dikodekan dan mengandung karakter khusus, migrasi file mungkin gagal.

      • Item Url: Lakukan URL encoding pada URL yang dapat diakses oleh alat baris perintah seperti curl (tanpa pengalihan).

      • Prinsip pengkodean Key: Lakukan URL encoding pada nama objek yang diinginkan untuk file tersebut di OSS.

      Penting

      Setelah mengkodekan item Url dan Key, pastikan hal-hal berikut. Jika tidak, migrasi file mungkin gagal, atau jalur file di tujuan tidak sesuai harapan Anda.

      • Tanda plus (+) dalam string asli dikodekan sebagai %2B.

      • Tanda persen (%) dalam string asli dikodekan sebagai %25.

      • Koma (,) dalam string asli dikodekan sebagai %2C.

      Sebagai contoh, jika string aslinya adalah a+b%c,d.file, maka string yang telah dikodekan seharusnya a%2Bb%25c%2Cd.file.

      Key

      Ya

      Nama objek setelah migrasi adalah `awalan + nama file`.

      Misalnya, Anda telah membuat file CSV bernama plain_example.csv yang belum dikodekan URL-nya. File tersebut hanya memiliki dua kolom: kolom pertama adalah Url, yang berisi URL yang dapat diakses langsung menggunakan perintah curl; kolom kedua adalah Key, yang merupakan nama objek yang diharapkan untuk file tersebut di OSS. Berikut contohnya:

      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
      Penting

      Jangan gunakan aplikasi Notepad bawaan Windows untuk mengedit manifest.json atau plain_example.csv karena aplikasi tersebut dapat menambahkan byte order mark (BOM) (0xefbbbf) pada tiga byte pertama file, yang dapat menyebabkan kesalahan penguraian di Data Online Migration. Di Linux atau macOS, jalankan perintah od -c plain_example.csv | less untuk memeriksa apakah tiga byte pertama file mengandung tanda tersebut. Di Windows, gunakan aplikasi seperti Notepad++ atau Visual Studio Code untuk membuat atau mengedit file.

      Kode Python contoh berikut membaca plain_example.csv baris demi baris dan menghasilkan keluaran berupa hasil pengkodean ke file example.csv. Kode ini hanya sebagai referensi dan dapat dimodifikasi sesuai kebutuhan.

      # -*- 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")
      
      # Jalur file CSV sumber.
      src_path = "plain_example.csv"
      # Jalur file hasil pengkodean URL.
      out_path = "example.csv"
      
      # Contoh CSV hanya berisi dua kolom: url dan key.
      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"))
              # Variabel enc_url dan enc_key berada dalam format terkodekan.
              fout.write(enc_url + "," + enc_key + "\n")
      

      Setelah menjalankan kode di atas, isi file example.csv adalah sebagai berikut:

      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

    • Semua item

      Nama

      Wajib

      Catatan

      Key

      Ya

      Nama objek setelah migrasi adalah `awalan + nama file`.

      Url

      Ya

      Data Online Migration menggunakan tautan ini untuk mengunduh konten file dengan permintaan GET dan untuk mendapatkan metadata file dengan permintaan HEAD.

      Size

      Tidak

      Ukuran file yang akan dimigrasikan, dalam satuan byte.

      Catatan

      Bidang ini digunakan untuk menghitung penggunaan penyimpanan file yang dimigrasikan. Jika bidang ini tidak ada, grafik penggunaan penyimpanan di konsol tidak akan tersedia.

      Catatan

      Urutan item dalam contoh di atas tidak tetap dan harus sesuai dengan urutan item dalam bidang fileSchema di file manifest.json.

  2. Kompres file CSV

    Kompres file CSV menjadi file .csv.gz. Metode kompresi berikut tersedia:

    • Kompres satu file

      Sebagai contoh, jika file bernama example.csv ada di direktori dir, jalankan perintah berikut untuk mengompresnya:

      gzip -c example.csv > example.csv.gz
      Catatan

      Saat menjalankan perintah gzip di atas untuk mengompres file, file sumber tidak disimpan. Untuk menyimpan file sumber, jalankan perintah gzip -c <source_file> > <source_file>.gz.

      Setelah kompresi, file .csv.gz dihasilkan.

    • Kompres beberapa file

      Sebagai contoh, jika tiga file bernama example1.csv, example2.csv, dan example3.csv ada di direktori dir, jalankan perintah berikut untuk mengompresnya:

      gzip -r dir
      Catatan

      Perintah gzip tidak memaketkan direktori, melainkan mengompres setiap file di direktori yang ditentukan secara terpisah tanpa menyimpan file sumber yang bersesuaian.

      Setelah kompresi, tiga file bernama example1.csv.gz, example2.csv.gz, dan example3.csv.gz dihasilkan di direktori dir.

  3. Buat file manifest.json

    Anda dapat mengonfigurasi beberapa file CSV. Detailnya sebagai berikut:

    • fileFormat: Menentukan bahwa format file daftar adalah CSV.

    • fileSchema: Sesuai dengan item-item dalam file CSV. Perhatikan urutannya.

      Catatan

      Pastikan jumlah kolom dalam file CSV sama dengan jumlah bidang dalam konfigurasi ini. Layanan migrasi akan memeriksa konsistensinya.

    • files:

      • key: Lokasi file CSV di bucket.

      • MD5checksum: String MD5 heksadesimal 16 digit. Nilainya tidak peka huruf besar/kecil. Contoh: 91A76757B25C8BE78BC321DEEBA6A5AD. Jika nilai ini tidak ditentukan, tidak ada pemeriksaan yang dilakukan.

      • size: Ukuran file daftar.

    Contoh berikut hanya sebagai referensi.

    {
        "fileFormat":"CSV",
        "fileSchema":"Url, Key",
        "files":[{
            "key":"dir/example1.csv.gz",
            "MD5checksum":"",
            "size":0
        },{
            "key":"dir/example2.csv.gz",
            "MD5checksum":"",
            "size":0
        }]
    }
  4. Unggah file manifes yang telah Anda buat ke OSS atau AWS S3.

    1. Unggah file manifest.json dan file daftar CSV terkompresi. Nama file daftar CSV harus sesuai dengan nama file CSV dalam file manifest.json.

    2. Catat jalur file manifest.json. Anda harus menentukan lokasi manifes saat membuat alamat data sumber.

Langkah 2: Buat bucket tujuan

Buat bucket Object Storage Service (OSS) sebagai tujuan untuk menyimpan data yang dimigrasikan. Untuk informasi selengkapnya, lihat Buat bucket.

Langkah 3: Buat Pengguna RAM dan berikan izin kepada Pengguna RAM

Penting
  • Pengguna Resource Access Management (RAM) digunakan untuk menjalankan tugas migrasi data. Anda harus membuat peran RAM dan menjalankan tugas migrasi data sebagai Pengguna RAM. Disarankan untuk membuat Pengguna RAM dalam Akun Alibaba Cloud yang memiliki bucket OSS sumber atau tujuan.

  • Untuk informasi selengkapnya, lihat Buat Pengguna RAM dan berikan izin kepada Pengguna RAM.

Masuk ke konsol RAM dengan Akun Alibaba Cloud. Di halaman Pengguna, temukan Pengguna RAM yang telah Anda buat dan klik Add Permissions di kolom Actions.

  1. Kebijakan sistem: AliyunOSSImportFullAccess. Kebijakan ini memberikan izin untuk mengelola Data Online Migration.

  2. Kebijakan kustom: Kebijakan harus mencakup izin ram:CreateRole, ram:CreatePolicy, ram:AttachPolicyToRole, dan ram:ListRoles.

    Untuk informasi selengkapnya tentang cara menyambungkan kebijakan kustom, lihat Buat kebijakan kustom. Kode contoh berikut memberikan contoh kebijakan kustom:

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

Langkah 4: Berikan izin pada bucket manifes

Lakukan operasi yang sesuai berdasarkan apakah bucket yang menyimpan daftar inventaris dimiliki oleh Akun Alibaba Cloud saat ini.

Bucket yang menyimpan daftar inventaris dimiliki oleh Akun Alibaba Cloud saat ini

  • Otorisasi otomatis

    Disarankan untuk menyelesaikan otorisasi di Konsol Data Online Migration. Untuk informasi selengkapnya, lihat bagian "Langkah 2: Buat alamat data sumber" dalam topik Migrasi data.

  • Otorisasi manual

    Berikan izin pada bucket yang menyimpan daftar inventaris

    Di halaman Peran, temukan peran RAM yang telah dibuat dan klik Grant Permission di kolom Tindakan.

    • Kebijakan kustom: Sambungkan kebijakan kustom yang mencakup izin oss:List* dan oss:Get* ke peran RAM.

    Untuk informasi selengkapnya tentang cara menyambungkan kebijakan kustom, lihat Buat kebijakan kustom. Kode contoh berikut memberikan contoh kebijakan kustom.

    Catatan

    Kebijakan berikut hanya sebagai referensi. Ganti <myInvBucket> dengan nama bucket yang menyimpan daftar inventaris.

    Untuk informasi selengkapnya tentang kebijakan RAM untuk OSS, lihat Contoh umum kebijakan RAM.

    Penting

    Jika enkripsi sisi server menggunakan kunci yang dikelola oleh Key Management Service (SSE-KMS) dikonfigurasi untuk bucket yang menyimpan daftar inventaris, Anda harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke peran RAM.

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

Bucket yang menyimpan daftar inventaris tidak dimiliki oleh Akun Alibaba Cloud saat ini

Berikan izin pada bucket yang menyimpan daftar inventaris

  1. Masuk ke Konsol OSS dengan Akun Alibaba Cloud yang memiliki bucket yang menyimpan daftar inventaris.

  2. Di panel navigasi sebelah kiri, klik Buckets. Di halaman Bucket, klik nama bucket yang menyimpan daftar inventaris.

  3. Di panel navigasi sebelah kiri, pilih Permission Control > Bucket Policy.

  4. Di tab Kebijakan Bucket, klik Tambah berdasarkan Sintaks. Di halaman yang muncul, klik Edit, masukkan kebijakan bucket kustom di editor kode, lalu klik Save.

  • Kebijakan kustom:

    Berikan izin kepada peran RAM untuk mencantumkan dan membaca semua sumber daya di bucket yang menyimpan daftar inventaris.

    Catatan

    Kebijakan berikut hanya sebagai referensi. Ganti <otherInvBucket> dengan nama bucket yang menyimpan daftar inventaris, <myuid> dengan ID Akun Alibaba Cloud yang digunakan untuk masuk ke Konsol Data Online Migration, <otherUid> dengan yang memiliki bucket yang menyimpan daftar inventaris, dan <roleName> dengan yang telah Anda buat. Untuk informasi selengkapnya tentang kebijakan RAM untuk OSS, lihat Contoh umum kebijakan 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>:<othereInvBucket>/*"
          ]
        }
      ]
    }

2. Konfigurasi kebijakan untuk kunci kustom

  1. Jika enkripsi sisi server menggunakan SSE-KMS dikonfigurasi untuk bucket yang menyimpan daftar inventaris, Anda harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke peran RAM.

  2. Jika kunci kustom KMS digunakan untuk mengenkripsi data di bucket yang menyimpan daftar inventaris, lakukan langkah-langkah berikut untuk mengonfigurasi kebijakan untuk kunci kustom tersebut:

    1. Masuk ke konsol KMS dan temukan kunci kustom tersebut.

    2. Di tab Key Policy halaman detail, klik Konfigurasi Kebijakan Kunci. Di panel Kebijakan Kunci, masukkan ARN peran RAM di bidang Cross-account User. Untuk informasi selengkapnya, lihat Konfigurasi kebijakan kunci. image

Langkah 5: Berikan izin pada bucket tujuan

Lakukan operasi yang sesuai berdasarkan apakah bucket tujuan dimiliki oleh Akun Alibaba Cloud saat ini.

Bucket tujuan dimiliki oleh Akun Alibaba Cloud saat ini

  • Otorisasi otomatis

    Disarankan untuk menggunakan otorisasi otomatis di konsol Data Online Migration. Untuk informasi selengkapnya, lihat bagian "Langkah 3: Buat alamat data tujuan" dalam topik Migrasi data.

  • Otorisasi manual

    Catatan

    Anda dapat melakukan otorisasi manual dalam skenario berikut:

    • Anda ingin memberikan izin pada beberapa bucket sumber ke peran RAM untuk mengelola beberapa bucket sumber secara efektif.

    • Anda tidak ingin membuat lebih banyak peran RAM karena jumlah peran RAM dalam Akun Alibaba Cloud saat ini hampir mencapai batas maksimum.

    • Otorisasi otomatis tidak berlaku atau tidak dapat digunakan.

    1. Buat peran RAM yang digunakan untuk migrasi data

    Masuk ke konsol RAM tempat Pengguna RAM dibuat. Di halaman Peran, klik Create Role.

    1. Jenis Prinsipal: Pilih Cloud Service.

    2. Nama Prinsipal: Pilih Data Transport.

    3. Role Name: Masukkan nama Peran RAM menggunakan huruf kecil.

    lQLPKIBPhyQhs7vNAlPNA-mwb_9Zfe8j6sMHtpv2syNfAA_1001_595

    image

    2. Berikan izin pada bucket tujuan kepada peran RAM

    Di halaman Peran, temukan peran RAM yang telah dibuat dan klik Berikan Izin di kolom Tindakan.

    • Kebijakan kustom: Sambungkan kebijakan kustom yang mencakup izin oss:List*, oss:Get*, oss:Put*, dan oss:AbortMultipartUpload* ke peran RAM.

    Untuk informasi selengkapnya tentang cara menyambungkan kebijakan kustom, lihat Buat kebijakan kustom. Kode contoh berikut memberikan contoh kebijakan kustom:

    Catatan

    Kebijakan berikut hanya sebagai referensi. Ganti <myDestBucket> dengan nama bucket tujuan.

    Untuk informasi selengkapnya tentang kebijakan RAM untuk OSS, lihat Contoh umum kebijakan RAM.

    Penting

    Jika enkripsi sisi server menggunakan kunci yang dikelola oleh Key Management Service (SSE-KMS) dikonfigurasi untuk bucket tujuan, Anda harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke peran RAM.

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

Bucket tujuan tidak dimiliki oleh Akun Alibaba Cloud saat ini

1. Buat peran RAM yang digunakan untuk migrasi data

Masuk ke konsol RAM tempat Pengguna RAM dibuat. Di halaman Peran, klik Create Role.

  1. Jenis Prinsipal: Pilih Cloud Service.

  2. Nama Prinsipal: Pilih Data Transport.

  3. Role Name: Masukkan nama peran RAM menggunakan huruf kecil.

lQLPKIBPhyQhs7vNAlPNA-mwb_9Zfe8j6sMHtpv2syNfAA_1001_595

image

2. Berikan izin pada bucket tujuan kepada peran RAM

Penting

Jika Anda mengonfigurasi kebijakan bucket dengan menentukan pernyataan kebijakan untuk memberikan izin yang diperlukan kepada peran RAM, kebijakan bucket baru akan menimpa kebijakan bucket yang ada. Pastikan kebijakan bucket baru berisi konten kebijakan bucket yang ada. Jika tidak, otorisasi berdasarkan kebijakan bucket yang ada mungkin gagal.

  1. Masuk ke Konsol OSS dengan Akun Alibaba Cloud yang memiliki bucket tujuan.

  2. Di panel navigasi sebelah kiri, klik Buckets. Di halaman Bucket, klik nama bucket tujuan.

  3. Di panel sebelah kiri halaman detail bucket, pilih Permission Control > Bucket Policy.

  4. Di tab Kebijakan Bucket, klik Add by Syntax lalu klik Edit. Di editor kode, masukkan kebijakan bucket kustom. Kemudian, klik Save.

    • Berikan izin kepada peran RAM untuk mencantumkan, membaca, dan menghapus objek di bucket tujuan serta menulis objek ke bucket tujuan.

Catatan

Kebijakan berikut hanya sebagai referensi. Ganti <otherDestBucket> dengan the name of the destination bucket, <otherUid> dengan ID Akun Alibaba Cloud yang memiliki bucket tujuan, <myUid> dengan the ID of the Alibaba Cloud account that is used to log on to the Data Online Migration console, dan <roleName> dengan nama peran RAM yang telah Anda buat. Untuk informasi selengkapnya tentang kebijakan RAM untuk OSS, lihat Contoh umum kebijakan 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. Konfigurasi kebijakan untuk kunci kustom
  1. Jika SSE-KMS dikonfigurasi untuk bucket tujuan, Anda harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke peran RAM.

  2. Jika kunci kustom KMS digunakan untuk mengenkripsi data di bucket tujuan, lakukan langkah-langkah berikut untuk mengonfigurasi kebijakan untuk kunci kustom tersebut.

    1. Masuk ke konsol KMS dan temukan kunci kustom tersebut.

    2. Di tab Key Policy halaman detail, klik Konfigurasi Kebijakan Kunci. Di panel Kebijakan Kunci, masukkan ARN peran RAM di bidang Cross-account User. Untuk informasi selengkapnya, lihat Konfigurasi kebijakan kunci. image