<!-- Canonical URL: https://ask.atlascloud.ai/vi/save-ai-videos-before-download-links-expire -->

# Làm thế nào để lưu video do AI tạo trước khi liên kết tải xuống tạm thời hết hạn?

> Lưu video đã tạo bằng cách xem URL nhà cung cấp là thông tin xác thực truyền tải ngắn hạn, không phải vị trí tài sản. Xếp hàng tải xuống ngay khi tác vụ hoàn tất, truyền luồng vào kho đối tượng bền vững, xác minh kích thước, loại và checksum, rồi ghi URI vĩnh viễn trước khi đánh dấu tác vụ sản xuất hoàn tất.

<!-- Canonical URL: https://ask.atlascloud.ai/save-ai-videos-before-download-links-expire -->

# Làm thế nào để lưu video do AI tạo trước khi liên kết tải xuống tạm thời hết hạn?

Một lần tạo đã hoàn tất chưa phải tài sản bền vững cho đến khi dữ liệu byte tồn tại trong kho bạn kiểm soát. Nhiều API video trả về URL tải xuống có chữ ký hoặc tạm thời được thiết kế để truyền tệp, không phải phát lâu dài. Nếu chỉ lưu URL đó, một video đã được duyệt có thể biến mất khỏi ứng dụng sau vài giờ hoặc vài ngày.

Hãy xây dựng một bước nhập tài sản riêng bắt đầu khi quá trình tạo hoàn tất. Bước này nhận tác vụ tải xuống, lấy URL hiện hành, truyền luồng media vào đối tượng tạm, xác thực và đưa nó sang khóa vĩnh viễn xác định trước. Chỉ khi đó tác vụ sản xuất mới nên chuyển sang hoàn tất.

## Xem URL như thông tin xác thực

URL có chữ ký thường cấp quyền truy cập tạm thời vào đối tượng mà không cần header ủy quyền khác. Điều đó khiến URL trở nên nhạy cảm. Đừng để nó xuất hiện trong phân tích, nhật ký khách hàng nhìn thấy, phiếu hỗ trợ hoặc trường cơ sở dữ liệu vĩnh viễn trừ khi quyền truy cập được kiểm soát chặt.

Thay vào đó, hãy lưu:

* ID tác vụ nhà cung cấp;
* định danh đầu ra của nhà cung cấp khi có;
* thời điểm URL được cấp và thời điểm hết hạn quan sát được;
* bản ghi các lần tải xuống;
* khóa kho đối tượng cuối cùng;
* metadata xác minh và checksum.

Nếu nhà cung cấp trả về thời điểm hết hạn rõ ràng, hãy lên lịch tải đầu tiên sớm hơn đáng kể. Nếu thời hạn không được công bố, hãy giả định liên kết tồn tại ngắn và xếp hàng truyền tệp ngay.

## Tách quá trình tạo khỏi quá trình nhập tài sản

Hoàn tất tạo và lưu bền vững là hai trạng thái khác nhau. Tác vụ có thể thành công từ xa trong khi tải xuống thất bại cục bộ.

| Trạng thái | Ý nghĩa | Hành động tiếp theo |
|---|---|---|
| `generating` | Nhà cung cấp đang tạo video | Thăm dò hoặc chờ webhook |
| `output_ready` | Nhà cung cấp báo đầu ra đã hoàn tất | Xếp hàng tải xuống |
| `downloading` | Worker đang sở hữu một lần truyền | Truyền luồng vào kho tạm |
| `verifying` | Dữ liệu byte đã đến | Kiểm tra và tính checksum |
| `stored` | Đối tượng bền vững đã được xác nhận | Lưu URI vĩnh viễn |
| `complete` | Metadata và tài sản đã được commit | Giao cho bên sử dụng |
| `download_retry` | Truyền thất bại tạm thời | Làm mới URL và thử lại |
| `needs_attention` | Không thể tự động khôi phục đầu ra | Chuyển xử lý kèm bằng chứng |

Đừng đánh dấu tác vụ hoàn tất tại `output_ready`. Lối tắt đó là nguyên nhân chính khiến hệ thống về sau phát hiện cơ sở dữ liệu đang trỏ đến liên kết hết hạn.

## Xác nhận webhook trước khi tải xuống

Trình xử lý webhook nên xác thực sự kiện, lưu nó, xếp hàng đầu ra và phản hồi nhanh. Tải video lớn bên trong yêu cầu webhook có nguy cơ timeout và khiến nhà cung cấp gửi lại nhiều lần.

Loại bỏ sự kiện trùng bằng ID sự kiện hoặc tổ hợp ID tác vụ nhà cung cấp và ID đầu ra. Làm cho thao tác xếp hàng có tính idempotent bằng một khóa duy nhất như:

```text
download_key = provider + provider_job_id + output_id
```

Khi đó, webhook lặp sẽ hội tụ về một tác vụ tải xuống. Polling và webhook đều có thể gọi cùng thao tác idempotent `ensure_download_task`.

## Truyền luồng vào đối tượng tạm

Tránh đọc toàn bộ phản hồi vào bộ nhớ ứng dụng. Truyền từng phần vào tệp tạm hoặc tải lên đối tượng nhiều phần trong lúc tính checksum mật mã.

Một chuỗi truyền an toàn là:

1. Nhận tác vụ tải xuống bằng lease có thời hạn.
2. Lấy URL mới nếu API hỗ trợ làm mới.
3. Gửi yêu cầu với thời gian chờ kết nối và đọc có giới hạn.
4. Từ chối chuyển hướng đến host không mong đợi theo chính sách.
5. Truyền các chunk trong lúc đếm byte và tính SHA-256.
6. Đóng và hoàn tất đối tượng tạm.
7. Xác thực media.
8. Quảng bá hoặc sao chép sang khóa cuối cùng.
9. Commit URI bền vững và metadata.

Dùng backpressure để worker không đệm nhanh hơn khả năng nhận dữ liệu của kho. Giới hạn số lần truyền đồng thời theo băng thông, kích thước tệp và năng lực dịch vụ lưu trữ thay vì chỉ theo số tác vụ.

## Xác thực dữ liệu byte, không chỉ header phản hồi

HTTP `200` có thể chứa trang lỗi HTML, thông báo JSON hoặc tệp bị cắt. `Content-Type: video/mp4` là bằng chứng hữu ích nhưng không phải chứng minh.

| Phép xác thực | Lỗi được phát hiện |
|---|---|
| Số byte lớn hơn không | Phản hồi rỗng |
| Độ dài dự kiến hoặc hợp lý | Lần truyền bị cắt |
| Chữ ký tệp | HTML hoặc JSON bị lưu thành video |
| Phân tích container | Cấu trúc media hỏng |
| Thời lượng lớn hơn không | Video không hợp lệ hoặc chưa hoàn chỉnh |
| Kích thước và codec | Đầu ra ngoài hợp đồng giao nhận |
| Checksum SHA-256 | Dữ liệu byte thay đổi hoặc trùng |
| Giải mã mẫu khi cần | Media phân tích được nhưng không phát được |

Lưu metadata quan sát được bên cạnh đối tượng. So sánh với thời lượng và độ phân giải yêu cầu bằng dung sai phù hợp cho mô hình và container. Đừng loại video hợp lệ chỉ vì thời lượng container chênh vài khung hình, trừ khi hợp đồng giao nhận yêu cầu chính xác tuyệt đối.

## Dùng khóa bền vững xác định trước

Khóa có thể dự đoán giúp việc thử lại idempotent và tài sản có thể truy dấu. Hãy đưa danh tính kinh doanh ổn định, biến thể đầu ra và phiên bản hoặc checksum vào khóa.

```text
videos/{account}/{operation_id}/{attempt_id}/{output_id}-{sha256_prefix}.mp4
```

Trước tiên ghi vào namespace tạm. Sau khi xác thực, quảng bá đối tượng hoặc commit con trỏ cơ sở dữ liệu đến khóa được đánh địa chỉ theo checksum đã xác minh. Nếu worker khác đã lưu cùng checksum cho cùng tác vụ, hãy tái sử dụng thay vì tạo bản trùng không liên quan.

Không đưa trực tiếp tên tệp do người dùng cung cấp vào đường dẫn lưu trữ nếu chưa làm sạch. Lưu tên hiển thị gốc dưới dạng metadata.

## Khôi phục khi hết hạn và truyền bị gián đoạn

Phân loại lỗi để việc thử lại có mục đích.

* Mất kết nối và lỗi lưu trữ tạm thời thường có thể thử lại với backoff.
* Phản hồi ủy quyền hoặc hết hạn có thể yêu cầu URL được làm mới.
* Phản hồi không tìm thấy có thể nghĩa là nhà cung cấp đã xóa tài sản.
* Lỗi checksum hoặc xác thực media lặp lại phải dừng thử lại tự động.
* Lỗi hạn ngạch hoặc quyền cục bộ cần hành động vận hành, không phải một lần gọi nhà cung cấp khác.

Giữ ID tác vụ nhà cung cấp. Nhiều API có thể trả một URL có chữ ký mới cho tác vụ đã hoàn tất ngay cả sau khi URL đầu tiên hết hạn. Hãy xác minh hành vi này cho endpoint hiện tại thay vì giả định.

Chỉ tiếp tục tải một phần khi cả nguồn và đích hỗ trợ byte range đã xác minh và danh tính đối tượng không thay đổi. Nếu không, hãy bắt đầu lại vào một đối tượng tạm mới. Ghép byte từ hai phiên bản có thể tạo tệp trông hoàn chỉnh nhưng thực tế bị hỏng.

## Chọn lịch thử lại tôn trọng thời hạn URL

Backoff lũy thừa thông thường có thể chờ quá thời gian còn lại của URL. Dùng thời điểm hết hạn đã biết để giới hạn độ trễ.

```text
next_delay = min(exponential_backoff, time_until_expiry - safety_margin)
```

Nếu URL gần hết hạn, hãy làm mới trước khi thử lại. Thêm jitter ngẫu nhiên để khi nhà cung cấp phục hồi, mọi worker thất bại không kết nối lại cùng lúc.

Đặt giới hạn riêng cho số lần truyền và số lần làm mới URL. Một tác vụ liên tục nhận tệp không hợp lệ không nên tiêu thụ URL mới vô hạn.

## Bảo mật đường dẫn lưu trữ

Đối tượng vĩnh viễn phải tuân theo chính sách truy cập của bạn. Mặc định dùng bucket riêng tư, mã hóa phía máy chủ khi phù hợp, thông tin xác thực worker có phạm vi hẹp và URL giao nhận ngắn hạn cho người xem.

Đừng sao chép query string của URL nguồn vào metadata vì nó có thể chứa chữ ký. Che URL trong nhật ký hoặc chỉ lưu host, hàm băm đường dẫn, thời gian cấp và thời gian hết hạn.

Áp dụng quét mã độc hoặc kiểm duyệt nội dung khi sản phẩm yêu cầu. Giữ ranh giới tenant trong khóa đối tượng và kiểm tra ủy quyền, nhưng đừng chỉ dựa vào tên đường dẫn để kiểm soát truy cập.

## Tạo chính sách lưu giữ và bản dẫn xuất

Bền vững không có nghĩa là vĩnh viễn. Xác định quy tắc vòng đời cho bản gốc, bản master được duyệt, bản xem trước và các lần thử bị loại.

| Lớp tài sản | Cân nhắc chính sách mẫu |
|---|---|
| Bản master được duyệt | Hợp đồng khách hàng và chi phí tái tạo |
| Bản dẫn xuất giao nhận | Có thể tạo lại từ bản master |
| Lần tạo bị loại | Khoảng kiểm toán hoặc tranh chấp ngắn |
| Tệp tải lên tạm | Tự động xóa sau cửa sổ xác minh |
| Bản proxy để duyệt | Giữ đến khi phê duyệt rồi hết hạn |

Ghi trạng thái và lý do xóa. Nếu tài sản phải có khả năng tái tạo, hãy bảo toàn prompt, hàm băm nguồn, ID mô hình, tham số và quyền đối với tài liệu nguồn, đồng thời thừa nhận rằng quá trình tạo không xác định có thể không tái tạo đúng cùng dữ liệu byte.

## Theo dõi thời gian đạt độ bền vững

Đo khoảng thời gian từ lúc nhà cung cấp hoàn tất đến khi xác minh xong kho lưu trữ. Đây là cửa sổ rủi ro khi liên kết tạm thời là bản sao duy nhất của bạn.

Các chỉ số hữu ích gồm:

* đầu ra đang chờ tải;
* tuổi của đầu ra sẵn sàng lâu nhất;
* phân vị thời gian từ hoàn tất đến lưu trữ;
* phản hồi URL hết hạn;
* số lần truyền lại và URL được làm mới;
* lỗi checksum hoặc xác thực media;
* số byte đã tải và lưu;
* tác vụ được đánh dấu hoàn tất nhưng không có URI bền vững.

Chỉ số cuối phải bằng không. Cảnh báo trước khi tuổi backlog tiến gần thời hạn URL ngắn nhất từng quan sát.

## Làm rõ trách nhiệm truy cập mô hình và lưu trữ

[Atlas Cloud](https://www.atlascloud.ai/?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=save-ai-videos-before-download-links-expire) có thể cung cấp một nền tảng tương thích OpenAI cho việc truy cập mô hình văn bản, hình ảnh và video. Nền tảng thống nhất có thể đơn giản hóa metadata tác vụ và thanh toán, nhưng ứng dụng của bạn vẫn chịu trách nhiệm sao chép đầu ra vào kho đáp ứng yêu cầu lưu giữ và giao nhận.

Xác minh chính xác hành vi đầu ra và làm mới của endpoint mô hình hiện tại. Đừng tự đặt thời hạn hết hạn hoặc giả định mọi mô hình có cùng cơ chế tải xuống. Thiết kế adapter nhập tài sản để các khác biệt đó trở thành cấu hình và kiểm tra năng lực thay vì các giả định rải rác.

## Kết luận

Hãy lưu video do AI tạo bằng cách xem URL tạm thời là thông tin xác thực truyền tải sẽ hết hạn. Xếp hàng tải xuống ngay sau khi tạo, truyền luồng vào đối tượng tạm, xác thực media thực tế và quảng bá sang khóa bền vững xác định trước. Ghi URI vĩnh viễn và checksum trước khi tuyên bố tác vụ hoàn tất, đồng thời thiết kế làm mới URL, thử lại, lưu giữ và giám sát để liên kết nhà cung cấp có thể hết hạn mà không mang theo bản sao duy nhất của bạn.

## FAQ

### Tôi có thể lưu URL tải xuống của nhà cung cấp làm vị trí video cuối cùng không?

Không. URL có chữ ký hoặc URL tạm thời có thể hết hạn, bị thu hồi hoặc thay đổi. Hãy lưu khóa đối tượng bền vững và ID tác vụ nhà cung cấp, rồi yêu cầu hoặc dùng URL truyền tải mới chỉ khi cần.

### Worker tải xuống có nên nạp toàn bộ video vào bộ nhớ không?

Thường là không. Hãy truyền luồng phản hồi vào tệp tạm hoặc tải lên đối tượng nhiều phần trong lúc tính checksum để tệp lớn không làm cạn bộ nhớ.

### Cần xác minh gì trước khi đánh dấu video đã lưu?

Xác minh phản hồi HTTP, độ dài nội dung khi có, chữ ký tệp, container dự kiến, thời lượng lớn hơn không, yêu cầu về kích thước hoặc codec, checksum và việc ghi thành công vào kho bền vững.

### Điều gì xảy ra nếu URL tạm thời hết hạn trong lúc tải?

Giữ tác vụ sản xuất và ID tác vụ từ xa, loại bỏ hoặc cách ly đối tượng chưa hoàn chỉnh, yêu cầu URL mới nếu API hỗ trợ, rồi tiếp tục hoặc bắt đầu lại tùy khả năng hỗ trợ byte range đã được xác minh.

### Nên giữ video gốc đã tạo trong bao lâu?

Đặt thời hạn lưu dựa trên nhu cầu khách hàng, yêu cầu pháp lý và quyền riêng tư, chi phí tái tạo và ngân sách lưu trữ. Dùng chính sách vòng đời thay vì vô tình phụ thuộc vào URL của nhà cung cấp.

### Webhook có thể tải video trực tiếp không?

Trình xử lý webhook nên xác nhận nhanh và xếp hàng tác vụ tải xuống. Một worker riêng có thể thử lại an toàn, xác minh tài sản và tránh mất sự kiện do truyền mạng kéo dài.
