Bagaimana Anda menerapkan fungsionalitas unggah file yang sangat besar dengan aplikasi Django dan S3?
Dalam pekerjaan sampingan saya sebagai fotografer, saya memiliki beberapa klien yang saya perlukan untuk berbagi file arsip multi-gigabyte (zip, tar) dengan yang berisi dokumen asli serta gambar yang diproses dari acara tersebut. Sampai sekarang, kami telah menggunakan Google Drive untuk ini, di mana saya akan mengunggah file ke GD dan mereka akan mengambil dan menyimpan di drive penyimpanan lokal. Saya akan membersihkan folder GD sesekali, karena file yang diunggah di sana dicerminkan di komputer saya melalui klien Mac Google Drive. Mengingat bahwa Mac saya hanya memiliki drive onboard 256GB, ruang di premium.
Satu klien telah mengalami dua kegagalan hard drive selama empat bulan terakhir, di mana tidak ada nol dalam sepuluh tahun sebelumnya yang telah saya pekerjakan. Jadi mereka menginginkan solusi yang lebih baik, dan saya sudah menjadi pengembang, jadi mengapa tidak?
Sekarang, pertanyaannya adalah apakah ide yang baik untuk membuat browser bertanggung jawab atas antrian dan transportasi file arsip dua belas-plus gigabyte ke server saya, di mana ia akan melalui beberapa pemindaian atribut sebelum dipindahkan ke S3.
Saya dapat melihat dua opsi dengan ini:
- Gunakan browser dengan formulir unggah file untuk mengunggah file Multi-Bagian ke server. Setelah selesai, file akan diperiksa dan diproses oleh tugas Seledri lokal, dan kemudian diunggah ke ember S3.
- Menerapkan perintah Manajemen Django untuk memicu pelaksanaan tugas pemrosesan file lokal Seledri, dan menggunakan skrip Python lokal menggunakan Paramiko untuk mengunggah file dan memicu pelaksanaan perintah manajemen saat unggahan selesai.
Secara pribadi, saya condong ke Opsi 2, tetapi ingin ide lain jika memungkinkan.
sumber
Jawaban:
Melalui percakapan dengan orang lain tentang topik ini, saya pikir saya telah mengumpulkan solusi:
Untuk mencapai ini, hal-hal berikut harus dilakukan:
POST
diedit ke titik akhir REST APIsumber