Збереження файлів ШІ: від URL PiAPI до постійного сховища

Завершена генерація дає результат, але URL постачальника не є постійною медіатекою. Якщо користувачам потрібно відкривати, редагувати або завантажувати його пізніше, скопіюйте файл у підконтрольне сховище та відстежуйте копію окремо від генерації.
1. Прочитайте результат використаної моделі
Отримайте завдання за збереженим ID і вимагайте data.status зі значенням completed перед виділенням файлів. Структура data.output залежить від моделі й типу завдання. Використовуйте відповідний приклад; не очікуйте однаковий URL зображення чи відео на верхньому рівні всіх відповідей.
Наприклад, документована відповідь Kling містить масив works із відеоресурсами. Інші моделі мають інші поля. Збережіть ID, модель, тип завдання, час завершення та індекс вибраного ресурсу разом зі своєю роботою, щоб повторна спроба знайшла той самий результат.
2. Копіюйте відразу та перевіряйте строк для кожного сервісу
Документація зберігання PiAPI описує різні правила за сервісом і місцем розміщення. Деякі записи вказують короткий строк, інші посилаються на політику CDN постачальника. Сторінка містить і старі сервіси. Не застосовуйте один строк до всіх сучасних моделей і не вважайте невказаний строк необмеженим.
Після завершення запускайте фонове копіювання через вебхук або опитування. Надійно збережіть роботу до підтвердження виклику. Наведена нижче послідовність — стани сховища вашого застосунку, а не API завдань PiAPI.
generation completed → copy queued → downloading → verified → saved
↘ copy failed → retry copy3. Перевірте байти перед позначкою про збереження
Завантажуйте URL результату без передавання ключа API PiAPI. Обмежте дозволені адреси, перевіряйте перенаправлення та встановлюйте ліміти розміру й часу. Перевіряйте HTTP-статус, фактичні байти, очікуваний тип медіа та базову читабельність. HTML-сторінка помилки зі статусом 200 — не збережене відео.
Запишіть тимчасовий об’єкт, обчисліть контрольну суму та опублікуйте кінцевий об’єкт лише після перевірки. Використовуйте стабільний ключ на основі ID завдання та індексу ресурсу. Запишіть ключ, байти, контрольну суму й час; надавайте власний контрольований URL відповідно до політики доступу.
4. Повторюйте збереження окремо від генерації
Якщо копіювання не вдалося, залишайте генерацію завершеною та повторюйте копію, поки джерело доступне. Постійний унікальний запис запобігає дублям медіа. Якщо URL більше не читається, повторно отримайте завдання та перевірте поточний результат; це не гарантує відновлення простроченого файлу. До запуску перевірте дублікати подій, часткові завантаження та недоступні URL.
Джерела: зберігання результатів, отримання завдання Kling та вебхуки. Це схема сховища застосунку, а не обіцянка архівного зберігання від PiAPI.


