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

# เกิดอะไรขึ้นกับไฟล์อินพุตและ URL ผลลัพธ์เมื่อย้ายแอป Sora

> การอ้างอิงไฟล์และลิงก์วิดีโอของผู้ให้บริการไม่ใช่สินทรัพย์ที่พกย้ายได้ ให้เก็บไบต์ต้นฉบับภายใต้ ID สินทรัพย์ของคุณ อัปโหลดใหม่ตามรูปแบบปลายทาง แมปงานต้นทางและปลายทางแยกกัน และคัดลอกวิดีโอที่เสร็จก่อนทรัพยากรหมดอายุ

เมื่อย้ายแอป Sora โดยทั่วไปต้องอัปโหลดหรือจัดรูปแบบการอ้างอิงอินพุตใหม่สำหรับผู้ให้บริการปลายทาง ส่วน URL วิดีโอที่สร้างควรถูกมองเป็นตำแหน่งดาวน์โหลดชั่วคราว ให้ย้ายทั้งสองไว้หลังชั้นสินทรัพย์ที่ดูแลไฟล์ถาวร checksum นโยบายการเข้าถึง และการแมปผู้ให้บริการ

รูปแบบคำขอที่เข้ากันได้กับ API ไม่ได้ทำให้ ID ไฟล์หรือลิงก์ผลลัพธ์พกย้ายได้ ทรัพยากรเหล่านั้นมักเป็นของผู้ให้บริการที่ออกให้

## แยกสินทรัพย์ออกจากการอ้างอิงผู้ให้บริการ

ใช้ ID สินทรัพย์ของแอปพลิเคชันเป็นคีย์เสถียร:

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

ID ไฟล์ต้นทาง ID งานวิดีโอ และ URL ผลลัพธ์แบบลงนามเป็นคุณลักษณะของระเบียนนี้ ไม่ใช่ตัวระบุที่เปิดเป็นสัญญาถาวรของผลิตภัณฑ์

## สร้างการอ้างอิงอินพุตใหม่

endpoint วิดีโอของ OpenAI รับ prompt และอาจรับภาพ `input_reference` ผู้ให้บริการปลายทางอาจต้องการ multipart upload, ID ไฟล์ที่อัปโหลดล่วงหน้า, URL สาธารณะ หรือข้อมูล base64

สำหรับอินพุตต้นทางแต่ละรายการ ให้อ่านต้นฉบับถาวรจากพื้นที่เก็บของคุณ ตรวจชนิดสื่อและขนาด แล้วสร้างการอ้างอิงสำหรับปลายทาง อย่าถือว่าส่งตัวระบุไฟล์หรือสื่อของ OpenAI ไปยังผู้ขายรายอื่นได้

หากแอปเก็บเพียงการอ้างอิงผู้ให้บริการและไม่มีต้นฉบับ ให้ตรวจว่ายังดาวน์โหลดได้ก่อนย้าย อินพุตที่หมดอายุหรือถูกลบต้องให้ผู้ใช้อัปโหลดใหม่ ไม่มีการแปลงตัวระบุที่ปลอดภัยใดสร้างไบต์ที่หายไปกลับมาได้

## แมปออบเจ็กต์งานอย่างชัดเจน

การสร้างวิดีโอ Sora เป็นแบบอะซิงโครนัส งานมี ID สถานะ ความคืบหน้า โมเดล ระยะเวลา ขนาด เวลา และอาจมีเวลาหมดอายุของสินทรัพย์ที่ดาวน์โหลดได้ เก็บงานปลายทางคู่กับงานต้นทาง:

| ฟิลด์แอปพลิเคชัน | การแมปต้นทาง | การแมปปลายทาง |
|---|---|---|
| ID งานภายใน | ฐานข้อมูลของคุณ | ค่าเดียวกัน |
| ID งานผู้ให้บริการ | ID วิดีโอ OpenAI | ID งานปลายทาง |
| สถานะ | สถานะต้นทาง | สถานะปลายทางที่ทำให้เป็นมาตรฐาน |
| สินทรัพย์อินพุต | การอ้างอิงต้นทาง | การอ้างอิงปลายทางที่อัปโหลดใหม่ |
| สินทรัพย์เอาต์พุต | ไบต์ที่ดาวน์โหลด | ไบต์ปลายทางที่ดาวน์โหลด |

ห้ามเขียนทับการแมปต้นทางระหว่างการย้ายเป็นระยะ การเก็บทั้งคู่ทำให้ย้อนกลับและตรวจสอบปัญหาการสนับสนุนได้

## ดาวน์โหลดเนื้อหาผลลัพธ์ ไม่ใช่เพียง URL

OpenAI API มี endpoint เนื้อหาสำหรับงานวิดีโอที่เสร็จและรายงาน `expires_at` เมื่อสินทรัพย์มีวันหมดอายุ URL ที่คัดลอกจากการตอบกลับอาจหยุดทำงาน ต้องยืนยันตัวตน หรือไม่เหมาะให้ไคลเอนต์ใช้โดยตรง

เมื่องานเสร็จ worker ควร:

1. ดึงเนื้อหาวิดีโอจาก endpoint ที่ยืนยันตัวตน;
2. สตรีมไปยัง object storage ที่แอปควบคุม;
3. ตรวจชนิดสื่อ ขนาดไฟล์ และ checksum;
4. บันทึกที่มา โมเดล นโยบาย prompt และพารามิเตอร์การสร้าง;
5. ให้บริการผ่าน URL ส่งมอบที่ได้รับอนุญาตของคุณ

ใช้กระบวนการเดียวกันกับ thumbnail, preview หรือตัวแปรดาวน์โหลดอื่นที่ผลิตภัณฑ์ต้องใช้

## วางแผนการเก็บรักษาและความเป็นส่วนตัว

การคัดลอกไฟล์เปลี่ยนการกำกับดูแลข้อมูล กำหนดระยะเก็บแยกสำหรับไฟล์อัปโหลดของผู้ใช้ ข้อมูลกลาง วิดีโอสุดท้าย thumbnail และงานที่ล้มเหลว เข้ารหัสสินทรัพย์ จำกัดบทบาทบริการ และหลีกเลี่ยงการบันทึก URL ลงนามหรือ prompt ดิบ

เมื่อมีคำขอลบ ให้ลบสำเนาของแอปและเรียก endpoint ลบของผู้ให้บริการเมื่อมี เก็บ tombstone การลบที่มีตัวระบุไม่อ่อนไหวเพื่อให้การลองใหม่ยัง idempotent

## ทดสอบพฤติกรรมสื่อก่อนเปลี่ยนระบบ

สร้าง fixture สำหรับรูปแบบอินพุต แนวภาพ ความละเอียด ระยะเวลา และขนาดสูงสุดทุกแบบที่รองรับ ตรวจ alpha channel และ color profile หากการอ้างอิงภาพสำคัญ สำหรับเอาต์พุต ให้ทดสอบลิงก์หมดอายุ ดาวน์โหลดบางส่วน ชนิดเนื้อหาไม่ตรง range request การยกเลิก และการลองใหม่หลัง worker ล้ม

เปรียบเทียบนโยบายสื่อและผลการกลั่นกรองนอกเหนือจากกลไก API คำขอที่ทั้งสองฝ่ายรับทางไวยากรณ์อาจต่างกันด้านเนื้อหาที่อนุญาตหรือคุณลักษณะผลลัพธ์

## สรุป

การอ้างอิงไฟล์และ URL ผลลัพธ์ของ Sora เป็นทรัพยากรผู้ให้บริการ ไม่ใช่สินทรัพย์ที่พกย้ายได้ เก็บไบต์อินพุตต้นฉบับไว้ในพื้นที่ของคุณ สร้างการอ้างอิงปลายทางใหม่ ดาวน์โหลดวิดีโอทันที และเปิดเผย ID สินทรัพย์ที่เสถียรของแอป วิธีนี้ทำให้ย้อนการย้ายได้และป้องกันลิงก์หมดอายุกลายเป็นข้อมูลสูญหาย

## FAQ

### ส่ง input_reference ของ OpenAI ไปยังผู้ให้บริการวิดีโอรายอื่นได้หรือไม่

โดยทั่วไปไม่ได้ ให้อ่านไฟล์ต้นฉบับจากพื้นที่เก็บของคุณและสร้าง multipart upload, file ID, URL หรือการอ้างอิง base64 ตามที่ปลายทางกำหนด

### URL ผลลัพธ์ Sora เป็นแบบถาวรหรือไม่

ให้ถือว่าเป็นตำแหน่งส่งมอบชั่วคราวหรือมีการยืนยันตัวตน งานอาจรายงานเวลาหมดอายุ จึงควรดาวน์โหลดเนื้อหาไปยังพื้นที่เก็บของคุณทันที

### ถ้าเก็บไว้เพียง ID ไฟล์ของผู้ให้บริการจะทำอย่างไร

พยายามดึงไบต์ต้นฉบับขณะที่ทรัพยากรยังอยู่ หากหมดอายุหรือถูกลบ ผู้ใช้อาจต้องอัปโหลดไฟล์ต้นฉบับอีกครั้ง

### แอปพลิเคชันควรแสดง ID ใด

แสดง ID สินทรัพย์และงานที่เสถียรของคุณเอง เก็บ ID ผู้ให้บริการต้นทางและปลายทางเป็นการแมปสำหรับการดึงข้อมูล การสนับสนุน และการย้อนกลับ

### ควรเขียนทับการแมปต้นทางหลังย้ายหรือไม่

ไม่ควร เก็บทั้งสองการแมประหว่างการย้ายแบบเป็นระยะเพื่อเปรียบเทียบพฤติกรรมและย้อนกลับได้อย่างปลอดภัย

### ควรทดสอบอะไรสำหรับสินทรัพย์วิดีโอ

ทดสอบรูปแบบ ขนาด ระยะเวลา แนวภาพ และตัวแปรที่รองรับ รวมถึงการหมดอายุ การดาวน์โหลดบางส่วน การยกเลิก และการลองบันทึกใหม่
