Làm thế nào bạn có thể thực hiện chức năng tải lên tệp rất lớn với ứng dụng Django và S3?
Trong công việc phụ của tôi là một nhiếp ảnh gia, tôi có một số khách hàng mà tôi có nhu cầu chia sẻ các tệp lưu trữ nhiều gigabyte (zip, tar) với các bản gốc cũng như các hình ảnh được xử lý của sự kiện này. Cho đến bây giờ, chúng tôi đã sử dụng Google Drive cho việc này, trong đó tôi tải tệp lên GD và họ sẽ truy xuất và lưu trong ổ lưu trữ cục bộ. Thỉnh thoảng tôi dọn dẹp thư mục GD, vì các tệp được tải lên được nhân đôi trên máy tính của tôi thông qua ứng dụng khách Mac Google Drive. Cho rằng máy Mac của tôi chỉ có ổ đĩa 256GB, dung lượng là cao cấp.
Một khách hàng đã có hai lần hỏng ổ cứng trong bốn tháng qua, trong đó mười năm trước tôi không có việc làm. Vì vậy, họ muốn một giải pháp tốt hơn, và tôi đã là một nhà phát triển, vậy tại sao không?
Bây giờ, câu hỏi đặt ra là liệu trình duyệt có chịu trách nhiệm cho việc xếp hàng và vận chuyển tệp lưu trữ 12 gigabyte đến máy chủ của tôi hay không, qua đó nó sẽ trải qua một số lần quét thuộc tính trước khi được chuyển sang S3.
Tôi có thể thấy hai tùy chọn với điều này:
- Sử dụng trình duyệt với biểu mẫu tải lên tệp để tải lên tệp Đa phần lên máy chủ. Sau khi hoàn thành, tệp sẽ được kiểm tra và xử lý bởi tác vụ Celery cục bộ và sau đó được tải lên nhóm S3.
- Thực hiện lệnh Django Management để kích hoạt thực thi tác vụ Celery xử lý tệp cục bộ và sử dụng tập lệnh Python cục bộ bằng Paramiko để tải lên tệp và kích hoạt thực thi lệnh quản lý khi quá trình tải lên hoàn tất.
Cá nhân, tôi đang nghiêng về lựa chọn 2, nhưng muốn những ý tưởng khác nếu có thể.