Tải xuống kỹ thuật số: Sửa lỗi lưu trữ & tự động giao hàng cho đơn hàng trước đây

13 tháng 9, 2026

Hôm nay chúng tôi đã sửa một lỗi khiến một số tệp tải xuống kỹ thuật số biến mất sau các bản cập nhật máy chủ — và, quan trọng không kém, đảm bảo rằng người mua tự động nhận được quyền truy cập ngay khi người bán tải (lại) tệp lên.

Điều gì đã xảy ra

Một số người mua thấy «file not found on disk» (không tìm thấy tệp trên đĩa) khi nhấp vào nút tải xuống trong Tải xuống của tôi, mặc dù đơn hàng của họ đã được thanh toán và mục tải xuống tồn tại.

Nguyên nhân kỹ thuật

Dịch vụ trò chơi của chúng tôi chạy trong một container Docker trên mỗi VPS khu vực. Các tệp tải xuống được ghi vào /var/lib/erleuchtung/shop-downloads — vốn phải là một thư mục lưu trữ lâu dài trên máy chủ, được mount vào container.

Mount này tồn tại trong cấu hình phát triển của chúng tôi, nhưng bị thiếu trong tệp compose triển khai mà tác tử cập nhật của chúng tôi cài đặt trên các node VPS. Kết quả là, các tệp được tải lên được lưu trữ bên trong lớp filesystem của chính container. Mỗi khi bản cập nhật tạo lại container, lớp đó bị loại bỏ — các tệp biến mất, trong khi các bản ghi cơ sở dữ liệu (nằm trong PostgreSQL) vẫn còn.

Kết quả: một mục tải xuống hợp lệ trỏ đến một tệp không còn tồn tại.

Những gì chúng tôi đã sửa

  • Lưu trữ lâu dài trên tất cả các node. Thư mục tải xuống hiện được mount chính xác vào bộ nhớ máy chủ trên tất cả các máy chủ khu vực (US, IN, EU2, SG và node staging MAAS của chúng tôi). Các tệp tải lên tồn tại qua các bản cập nhật và việc tạo lại container.
  • Tự động bổ sung khi tải lên. Trước đây, quyền truy cập tải xuống chỉ được cấp tại thời điểm thanh toán — và chỉ cho các tệp tồn tại vào thời điểm đó. Bây giờ, khi người bán tải tệp lên một sản phẩm, tệp đó sẽ tự động được cấp cho tất cả người mua có đơn hàng đã thanh toán cho sản phẩm đó, kèm thông báo tức thì.
  • Danh sách tải xuống tự phục hồi. Mở «Tải xuống của tôi» giờ đây sẽ sửa chữa các quyền truy cập còn thiếu cho tất cả đơn hàng đã thanh toán của bạn — các giao dịch mua cũ tự khôi phục.
  • Cấp quyền khi giao hàng. Khi người bán đánh dấu đơn hàng là đã giao, các tệp đính kèm được cấp ngay lập tức — hàng kỹ thuật số đến hạn khi giao hàng.

Người bán cần làm gì

Các tệp được tải lên trước bản sửa lỗi này và bị mất trong quá trình cập nhật không thể khôi phục — chúng chỉ từng tồn tại bên trong một lớp container đã bị loại bỏ.

Nếu bạn đã tải tệp lên trước đây: mở sản phẩm của bạn, xóa mục tải xuống cũ và tải tệp lên lại. Ngay khi bạn tải lên, tất cả người mua trước đây sẽ tự động lấy lại quyền truy cập — không cần thao tác thủ công.

Một lưu ý về tính minh bạch

Các email thông báo «đã giao» mà một số bạn nhận được đề cập đến các tệp có thể tải xuống nhưng thực tế chưa bao giờ được đính kèm — văn bản đó là ghi chú giao hàng của người bán, không phải việc giao tệp. Với bản phát hành này, nút tải xuống trong «Tải xuống của tôi» là nguồn đáng tin cậy duy nhất: nếu một tệp được liệt kê ở đó, nó tồn tại trên máy chủ và có thể tải xuống.

Cảm ơn sự kiên nhẫn của các bạn — và đặc biệt cảm ơn các thành viên cộng đồng đã nhanh chóng báo cáo vấn đề.

— Đội ngũ Erleuchtung