All Products
Search
Document Center

:Persiapan

Last Updated:Aug 29, 2026

Lengkapi langkah-langkah persiapan berikut sebelum memulai tugas migrasi data.

Langkah 1: Unggah file daftar

File daftar HTTP/HTTPS terdiri dari dua komponen: file manifest.json yang mendefinisikan skema, dan satu atau beberapa file .csv.gz yang berisi daftar file aktual. Setiap file .csv.gz tidak boleh melebihi 100 MB.

  1. Buat file daftar CSV

    Buat file daftar dalam format CSV di mesin lokal Anda. Setiap baris merepresentasikan satu file. Baris dipisahkan oleh line feed (\n), dan kolom dalam setiap baris dipisahkan oleh koma (,).

    Penting
    • Key dan Url wajib diisi. Semua bidang lainnya opsional.

    • Setiap baris harus diakhiri dengan line feed. Ketidakhadiran line feed menyebabkan kegagalan parsing CSV yang mengganggu tugas migrasi.

    • Item wajib

      Name

      Required

      Description

      Notes

      Url

      Yes

      Data Online Migration menggunakan URL ini untuk mengunduh konten file (permintaan GET) dan mengambil metadata file (permintaan HEAD).

      Catatan

      Url harus dapat diakses melalui perintah seperti curl --HEAD "$Url" dan curl --GET "$Url". Data Online Migration tidak mendukung pengalihan URL (URL redirection).

      Kedua Url dan Key harus di-encode dalam bentuk URL jika mengandung karakter khusus. Tanpa encoding, migrasi mungkin gagal.

      • Url: Lakukan URL-encoding pada URL agar tetap dapat diakses oleh alat command-line seperti curl (tanpa pengalihan).

      • Key: Lakukan URL-encoding pada nama objek yang dimaksudkan untuk file tersebut di OSS.

      Penting

      Setelah encoding, pastikan hal-hal berikut. Jika tidak, migrasi mungkin gagal atau jalur file di tujuan berbeda dari yang Anda harapkan.

      • Tanda plus (+) dalam string asli di-encode sebagai %2B.

      • Tanda persen (%) dalam string asli di-encode sebagai %25.

      • Koma (,) dalam string asli di-encode sebagai %2C.

      Sebagai contoh, string asli a+b%c,d.file di-encode menjadi a%2Bb%25c%2Cd.file.

      Key

      Yes

      Nama objek di OSS setelah migrasi. Nama akhirnya adalah prefix + nilai Key. Misalnya, jika prefix-nya adalah backup/ dan Key-nya adalah images/photo.jpg, objek tersebut disimpan sebagai backup/images/photo.jpg.

      Contoh berikut menunjukkan file CSV teks biasa (tidak di-encode) bernama plain_example.csv dengan dua kolom: Url dan Key. URL dapat diakses langsung menggunakan perintah curl, dan nilai Key merupakan nama objek yang dimaksudkan di 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
      Penting

      Jangan gunakan aplikasi Notepad bawaan Windows untuk mengedit manifest.json atau plain_example.csv. Notepad dapat menambahkan byte order mark (BOM) (0xefbbbf) pada tiga byte pertama file, yang menyebabkan error parsing di Data Online Migration. Di Linux atau macOS, jalankan od -c plain_example.csv | less untuk memeriksa keberadaan BOM. Di Windows, gunakan Notepad++ atau Visual Studio Code sebagai gantinya.

      Jika URL atau key Anda mengandung karakter khusus, lakukan encoding sebelum digunakan. Skrip Python berikut membaca plain_example.csv baris demi baris dan menulis output yang telah di-encode ke 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")
      
      # Jalur file CSV sumber.
      src_path = "plain_example.csv"
      # Jalur file yang telah di-encode.
      out_path = "example.csv"
      
      # File CSV contoh 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 yang telah di-encode.
              fout.write(enc_url + "," + enc_key + "\n")
      

      Setelah menjalankan skrip, example.csv berisi konten yang telah di-encode 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

      Name

      Required

      Notes

      Key

      Yes

      Nama objek di OSS setelah migrasi. Nama akhirnya adalah prefix + nilai Key.

      Url

      Yes

      Data Online Migration menggunakan URL ini untuk mengunduh konten file (permintaan GET) dan mengambil metadata file (permintaan HEAD).

      Size

      No

      Ukuran file yang akan dimigrasikan, dalam byte.

      Catatan

      Bidang ini digunakan untuk menghitung penggunaan penyimpanan file yang dimigrasikan. Jika dihilangkan, grafik penggunaan penyimpanan di Konsol tidak akan tersedia.

      Catatan

      Urutan item tidak tetap, tetapi harus sesuai dengan urutan bidang dalam bidang fileSchema di manifest.json.

  2. Kompres file CSV

    Kompres setiap file CSV menjadi file .csv.gz menggunakan gzip.

    • Kompres satu file

      Untuk mengompres satu file bernama example.csv, jalankan:

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

      Perintah gzip tanpa flag -c akan menghapus file sumber setelah kompresi. Untuk menyimpan file sumber, gunakan gzip -c <source_file> > <source_file>.gz.

      Ini menghasilkan file .csv.gz.

    • Kompres beberapa file

      Untuk mengompres semua file CSV dalam direktori (misalnya, example1.csv, example2.csv, dan example3.csv dalam direktori dir), jalankan:

      gzip -r dir
      Catatan

      Perintah gzip mengompres setiap file dalam direktori secara terpisah dan tidak mengemas direktori itu sendiri. File sumber tidak disimpan.

      Ini menghasilkan example1.csv.gz, example2.csv.gz, dan example3.csv.gz dalam direktori dir.

  3. Buat file manifest.json

    File manifest.json mendefinisikan skema dan mereferensikan semua file daftar CSV. Konfigurasikan bidang-bidang berikut:

    • fileFormat: Atur ke CSV.

    • fileSchema: Menampilkan nama kolom dalam file CSV, dalam urutan yang sama dengan kolom-kolom tersebut.

      Catatan

      Jumlah kolom dalam file CSV harus sesuai dengan jumlah bidang dalam fileSchema. Layanan migrasi memvalidasi hal ini saat pembuatan tugas.

    • files: Array referensi file CSV. Setiap entri mencakup:

      • key: Jalur ke file .csv.gz di bucket.

      • MD5checksum: String MD5 heksadesimal 16 digit (tidak peka huruf besar/kecil). Contoh: 91A76757B25C8BE78BC321DEEBA6A5AD. Biarkan kosong untuk melewati pemeriksaan checksum.

      • size: Ukuran file .csv.gz.

    Contoh:

    {
        "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 ke OSS atau AWS S3.

    1. Unggah manifest.json dan semua file .csv.gz. Nama file di bucket harus sesuai dengan nama file yang direferensikan di manifest.json.

    2. Catat jalur ke manifest.json. Anda perlu menentukan jalur ini saat membuat alamat data sumber.

Langkah 2: Buat bucket tujuan

Buat bucket tujuan untuk menyimpan data yang dimigrasikan. Untuk informasi selengkapnya, lihat Buat bucket.

Langkah 3: Buat Pengguna RAM dan berikan izin

Penting
  • Anda harus menggunakan Pengguna RAM ini untuk membuat role dan menjalankan tugas migrasi. Kami menyarankan Anda membuat Pengguna RAM ini di bawah Akun Alibaba Cloud yang memiliki bucket sumber atau tujuan.

  • Untuk membuat Pengguna RAM, lihat Panduan cepat: Buat Pengguna RAM dan berikan izin.

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

  1. Kebijakan sistem: Izin untuk mengelola Layanan Migrasi Online (AliyunOSSImportFullAccess).

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

    Untuk informasi selengkapnya tentang cara mengelola izin, lihat Buat kebijakan kustom. Berikut adalah contoh kebijakan:

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

Langkah 4: Berikan izin pada bucket manifes

Instruksi berbeda tergantung apakah bucket inventaris milik akun Anda.

Bucket inventaris di akun Anda

  • Otorisasi satu klik

    Kami menyarankan menggunakan fitur otorisasi satu klik di Konsol Data Online Migration. Anda dapat menemukan opsi ini di bawah Migration Implementation > Step 2 > Authorize List Role.

  • Otorisasi manual

    Berikan izin bucket inventaris

    Di halaman Roles, temukan Peran RAM yang telah Anda buat dan klik Add Permissions di kolom Actions.

    • Kebijakan kustom: Kebijakan ini harus mencakup izin oss:List* dan oss:Get*.

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

    Catatan

    Ini adalah contoh kebijakan. Ganti <myInvBucket> dengan nama bucket inventaris Anda.

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

    Penting

    Jika bucket inventaris berisi objek yang dienkripsi dengan KMS, Anda juga harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke Peran RAM tersebut.

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

Bucket inventaris di akun lain

Berikan izin bucket inventaris

  1. Login ke Konsol OSS dengan Akun Alibaba Cloud yang memiliki bucket inventaris.

  2. Di panel navigasi kiri, klik Buckets lalu klik nama bucket inventaris.

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

  4. Di tab Add by Syntax, klik Edit dan tambahkan kebijakan bucket berikut.

  • Kebijakan kustom:

    Berikan izin Peran RAM untuk mendaftar dan membaca semua sumber daya di bucket.

    Catatan

    Ini adalah contoh kebijakan. Ganti placeholder dengan nilai aktual Anda: <otherInvBucket> dengan nama bucket inventaris, <myuid> dengan ID akun Alibaba Cloud dari akun yang digunakan untuk mengakses Konsol Data Online Migration, <otherUid> dengan UID of the Alibaba Cloud account pemilik bucket inventaris, dan <roleName> dengan name of the role yang telah Anda buat. Untuk informasi selengkapnya tentang kebijakan izin 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>:<otherInvBucket>/*"
          ]
        }
      ]
    }

2. Berikan izin KMS

  1. Jika bucket inventaris berisi objek yang dienkripsi dengan KMS, Anda juga harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke Peran RAM tersebut.

  2. Jika objek di bucket inventaris dienkripsi dengan kunci yang dikelola pelanggan, berikan akses Peran RAM ke kunci tersebut dengan mengikuti langkah-langkah berikut:

    1. Login ke Konsol Layanan Manajemen Kunci dan temukan kuncinya.

    2. Atur Key Policy, pilih Users from other accounts, dan masukkan ARN principal. Untuk informasi selengkapnya, lihat Atur kebijakan kunci. Klik Key Policy. Di panel yang muncul, konfigurasikan Administrators dan Users dengan mencari dan memilih berdasarkan nama Pengguna RAM atau Peran RAM. Di bagian Users from other accounts, masukkan ARN principal dalam format acs:ram::<userId>:role/<ramrole> atau acs:ram::<userId>:user/<ramuser>. Klik Add Principal ARN untuk menambahkan beberapa ARN.

Langkah 5: Berikan izin pada bucket tujuan

Ikuti langkah-langkah yang sesuai dengan kepemilikan bucket tujuan Anda.

Tujuan di akun yang sama

  • Otorisasi otomatis

    Gunakan otorisasi role otomatis di Konsol Data Online Migration: Migration Implementation > Step 3 > Authorize Role.

  • Otorisasi manual

    Catatan

    Gunakan otorisasi manual ketika:

    • Anda ingin satu Peran RAM mengelola beberapa bucket sumber.

    • Akun Anda hampir mencapai batas jumlah Peran RAM.

    • Otorisasi otomatis tidak sesuai atau tidak tersedia untuk kasus penggunaan Anda.

    1. Buat Peran RAM

    Login ke Konsol RAM, buka halaman Roles, lalu klik Create Role.

    1. Untuk Alibaba Cloud Service, pilih Alibaba Cloud Service.

    2. Untuk Data Transport, pilih Data Transport.

    3. Masukkan Role Name. Nama harus menggunakan huruf kecil semua.

    Sebagai contoh, masukkan role-test. Nama role dapat memiliki panjang hingga 64 karakter dan dapat berisi huruf, angka, tanda hubung (-), dan titik (.). Setelah memasukkan nama, klik OK.

    2. Berikan izin kepada Peran RAM

    Di halaman Roles, temukan Peran RAM tersebut dan klik Add Permissions di kolom Actions.

    • Buat dan sambungkan kebijakan kustom dengan izin berikut: oss:List*, oss:Get*, oss:Put*, dan oss:AbortMultipartUpload.

    Buat kebijakan kustom. Contoh kebijakan:

    Catatan

    Ganti <myDestBucket> dengan nama bucket tujuan Anda.

    Contoh umum kebijakan RAM.

    Penting

    Jika bucket tujuan menggunakan enkripsi SSE-KMS, Anda juga harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke Peran RAM tersebut.

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

Tujuan di akun berbeda

1. Buat Peran RAM

Di Akun Alibaba Cloud yang digunakan untuk migrasi, login ke Konsol RAM, buka halaman Roles, lalu klik Create Role.

  1. Untuk Alibaba Cloud Service, pilih Alibaba Cloud Service.

  2. Untuk Data Transport, pilih Data Transport.

  3. Masukkan Role Name. Nama harus menggunakan huruf kecil semua.

Sebagai contoh, masukkan role-test. Nama role dapat memiliki panjang hingga 64 karakter dan dapat berisi huruf, angka, tanda hubung (-), dan titik (.). Setelah memasukkan nama, klik OK.

2. Otorisasi bucket tujuan

Penting

Bucket Policy baru akan menimpa yang sudah ada. Sertakan semua pernyataan sebelumnya untuk mempertahankan izin yang sudah ada.

  1. Menggunakan Akun Alibaba Cloud yang memiliki bucket tujuan, login ke Konsol OSS.

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

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

  4. Di tab Add by Syntax, klik Edit untuk menentukan Bucket Policy kustom.

    • Berikan izin Peran RAM untuk mendaftar, membaca, dan menulis semua objek di bucket.

Catatan

Ganti placeholder berikut: <otherDestBucket> dengan name of the destination bucket, <otherUid> dengan UID of the Alibaba Cloud account yang memiliki bucket tujuan, <myUid> dengan UID of the Alibaba Cloud account for the migration console, dan <roleName> dengan name of the role yang dibuat di atas. 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. Otorisasi KMS
  1. Jika bucket tujuan menggunakan enkripsi SSE-KMS, Anda juga harus menyambungkan kebijakan sistem AliyunKMSFullAccess ke Peran RAM di akun yang digunakan untuk migrasi.

  2. Jika bucket tujuan menggunakan kunci KMS kustom, berikan akses Peran RAM ke kunci tersebut:

    1. Login ke Konsol KMS dan temukan kuncinya.

    2. Konfigurasikan key policy. Pilih Users of Other Accounts dan masukkan ARN principal yang berwenang. Konfigurasikan kebijakan kunci.

      Di kotak dialog Key Policy, konfigurasikan principal berwenang berikut:

      • Key administrators: Masukkan nama Pengguna RAM atau Peran RAM untuk mencari dan menambahkannya.

      • Key users: Masukkan nama Pengguna RAM atau Peran RAM untuk mencari dan menambahkan.

      • Key users of other accounts: Masukkan ARN principal yang berwenang dalam format acs:ram::<userId>:role/<ramrole> atau acs:ram::<userId>:user/<ramuser>, lalu klik Add ARN of Key User of Other Accounts untuk menambahkan beberapa entri.