<!-- Canonical URL: https://ask.atlascloud.ai/id/migrate-sora-app-input-files-output-urls -->

# Apa yang Terjadi pada File Input dan URL Output Saat Memigrasikan Aplikasi Sora?

> Referensi file dan tautan video penyedia bukan aset portabel. Simpan byte asli di bawah ID aset Anda, unggah ulang dalam format target, petakan job sumber dan target secara terpisah, lalu salin video selesai sebelum sumber daya kedaluwarsa.

Saat memigrasikan aplikasi Sora, referensi input biasanya perlu diunggah atau diformat ulang untuk penyedia target, sedangkan URL video yang dihasilkan harus dianggap sebagai lokasi unduhan sementara. Tempatkan keduanya di balik lapisan aset yang mengelola file persisten, checksum, kebijakan akses, dan pemetaan penyedia.

Bentuk permintaan yang kompatibel tidak membuat ID file atau tautan output menjadi portabel. Sumber daya itu biasanya milik penyedia yang menerbitkannya.

## Pisahkan aset dari referensi penyedia

Gunakan ID aset aplikasi sebagai kunci stabil:

```json
{
  "asset_id": "asset_01J...",
  "kind": "input_image",
  "sha256": "...",
  "storage_key": "inputs/asset_01J...png",
  "provider_refs": {
    "openai": "provider-specific-reference"
  }
}
```

ID file sumber, ID job video, dan URL output bertanda tangan adalah atribut catatan ini, bukan pengenal permanen dalam kontrak produk.

## Buat ulang referensi input

Endpoint video OpenAI menerima prompt dan dapat menerima gambar `input_reference`. Layanan target mungkin memerlukan multipart upload, file ID yang sudah diunggah, URL publik, atau data base64.

Untuk setiap input, baca sumber asli dari penyimpanan Anda, validasi jenis media dan dimensinya, lalu buat referensi khusus target. Jangan menganggap pengenal file atau media OpenAI dapat dikirim ke penyedia lain.

Jika aplikasi hanya menyimpan referensi penyedia tanpa sumber asli, periksa apakah masih dapat diunduh. Input yang kedaluwarsa atau dihapus memerlukan unggahan ulang pengguna; konversi ID tidak dapat membuat ulang byte yang hilang.

## Petakan objek job secara eksplisit

Pembuatan video Sora bersifat asinkron. Job memiliki ID, status, progres, model, durasi, ukuran, stempel waktu, dan mungkin waktu kedaluwarsa aset. Simpan job target berdampingan dengan job sumber:

| Field aplikasi | Pemetaan sumber | Pemetaan target |
|---|---|---|
| ID job internal | Database Anda | Nilai yang sama |
| ID job penyedia | ID video OpenAI | ID job target |
| Status | Status sumber | Status target ternormalisasi |
| Aset input | Referensi sumber | Referensi target yang diunggah ulang |
| Aset output | Byte yang diunduh | Byte target yang diunduh |

Jangan menimpa pemetaan sumber selama migrasi bertahap. Menyimpan keduanya memungkinkan rollback dan investigasi dukungan.

## Unduh konten output, bukan hanya URL

OpenAI API menyediakan endpoint konten untuk job video selesai dan melaporkan `expires_at` jika aset kedaluwarsa. URL dari respons dapat berhenti bekerja, membutuhkan autentikasi, atau tidak cocok untuk klien.

Saat selesai, worker harus:

1. mengambil konten video dari endpoint terautentikasi;
2. mengalirkannya ke object storage milik aplikasi;
3. memverifikasi jenis media, ukuran, dan checksum;
4. mencatat asal, model, kebijakan prompt, dan parameter;
5. menyajikannya melalui URL pengiriman terotorisasi milik Anda.

Terapkan proses yang sama pada thumbnail, preview, atau varian unduhan lain yang diperlukan produk.

## Rencanakan retensi dan privasi

Menyalin file mengubah tata kelola data. Tetapkan retensi terpisah untuk unggahan pengguna, perantara, video akhir, thumbnail, dan job gagal. Enkripsi aset, batasi peran layanan, serta hindari mencatat URL bertanda tangan atau prompt mentah.

Saat penghapusan diminta, hapus salinan aplikasi dan panggil endpoint penghapusan penyedia jika tersedia. Simpan tombstone dengan pengenal tidak sensitif agar percobaan ulang tetap idempoten.

## Uji perilaku media sebelum cutover

Buat fixture untuk setiap format input, orientasi, resolusi, durasi, dan ukuran maksimum. Verifikasi alpha channel dan profil warna jika relevan. Untuk output, uji tautan kedaluwarsa, unduhan parsial, content-type salah, range request, pembatalan, dan percobaan ulang setelah worker gagal.

Bandingkan kebijakan media dan hasil moderasi selain mekanisme API. Permintaan yang diterima secara sintaksis oleh kedua penyedia tetap dapat berbeda dalam konten yang diizinkan atau karakteristik hasil.

## Intinya

Referensi file dan URL output Sora adalah sumber daya penyedia, bukan aset portabel. Simpan byte input asli, buat referensi target baru, unduh video selesai segera, dan gunakan ID aset aplikasi yang stabil. Ini membuat migrasi dapat dibalik dan mencegah tautan kedaluwarsa menjadi kehilangan data.

## FAQ

### Bisakah input_reference OpenAI dikirim ke penyedia video lain?

Biasanya tidak. Baca file asli dari penyimpanan Anda dan buat multipart upload, file ID, URL, atau referensi base64 sesuai kebutuhan target.

### Apakah URL keluaran Sora permanen?

Perlakukan sebagai lokasi pengiriman sementara atau terautentikasi. Job dapat melaporkan waktu kedaluwarsa, jadi unduh konten segera ke penyimpanan Anda.

### Bagaimana jika hanya ID file penyedia yang disimpan?

Coba ambil byte asli selama sumber daya masih tersedia. Jika kedaluwarsa atau dihapus, pengguna mungkin harus mengunggah file asli lagi.

### ID apa yang harus ditampilkan aplikasi?

Tampilkan ID aset dan job stabil milik Anda. Simpan ID penyedia sumber dan target sebagai pemetaan untuk pengambilan, dukungan, dan rollback.

### Haruskah pemetaan sumber ditimpa setelah migrasi?

Tidak. Pertahankan kedua pemetaan selama migrasi bertahap agar perilaku dapat dibandingkan dan rollback tetap aman.

### Apa yang perlu diuji untuk aset video?

Uji format, ukuran, durasi, orientasi, dan varian yang didukung, serta kedaluwarsa, unduhan parsial, pembatalan, dan percobaan penyimpanan ulang.
