Kasus penggunaan
Kita berbicara tentang file besar di sini (minimal 100mb,
Sasaran
Optimalkan kinerja unggah dan/atau unduh data ke/dari Zenodo.
Mengunggah
Pindahkan data dari ke Zenodo secepat mungkin. Menggunakan 1) JavaScript (Browser) dan/atau 2) Python (API).
_Sisi klien_
JavaScript: file potongan (banyak perpustakaan yang ada mendukung ini - misalnya PLUpload), unggah potongan secara paralel (belum pernah melihat ini di mana pun - bisa menggunakan misalnya pekerja web javascript).
Python: Hal yang sama seperti JavaScript - chunk/paralelize + melihat ke dalam pipa HTTP dan lapisan TCP juga.
Masalah yang perlu diperhatikan:
_Sisi server_
Unduh
Contoh 1: Dataset 260GB dalam 1000 file. Bagaimana seorang peneliti dapat mengunduh file dengan mudah tanpa harus mengklik 1000 tautan.
Contoh 2: 260GB dataset dalam 4 file. Apa yang terjadi jika konektivitas jaringan hilang (yaitu unduhan yang dapat dilanjutkan).
_Sisi klien_
Mungkin mungkin untuk menulis aplikasi JavaScript yang dapat membantu mengunduh 1000 file. Aplikasi yang sama dapat membantu dengan unduhan yang dapat dilanjutkan. Sekali lagi, model pekerja web Javascript mungkin dapat digunakan untuk mengunduh file dalam potongan.
_Sisi server_
Menerapkan dukungan untuk permintaan rentang HTTP. Seperti unggahan (model proses, dan unduhan bersamaan). Misalnya, klien lambat yang meluangkan waktu untuk mengunduh file akan memenuhi batas.
Di luar cakupan (tetapi harus didiskusikan): Metode lain untuk mengoptimalkan pengiriman file seperti Jaringan Pengiriman Konten.
Bagian Python terutama akan masuk ke inveniosoftware/invenio-files-rest
Bagian JavaScript akan menjadi repositori terpisah.
Maaf untuk menghidupkan kembali masalah lama ini ke arah yang agak di luar topik ... Saya sangat ingin server HTTP Zenodo mendukung permintaan rentang HTTP, yang disebutkan dalam komentar asli. Sejauh yang saya tahu, mereka saat ini tidak dihormati. Apakah ini ada di peta jalan saat ini?
Apakah ada cara yang lebih baik untuk mengunduh file besar daripada menggunakan peramban internet biasa? File besar melalui http cenderung gagal dalam beberapa jam, dan unduhan tidak dapat dilanjutkan.
Dalam kasus saya, saya mencoba mengunduh kumpulan data 50 GB.
Kecepatan unduh berkisar 500 Kbps dan koneksi gagal di antara 12 jam sejak unduhan berlangsung.
Saya sudah mencoba mengunduhnya setiap hari selama berbulan-bulan sekarang (saya membutuhkan dataset untuk tesis master saya).
Ada saran?
Saya bahkan tidak dapat mengunduh kumpulan data 2,2 GB setelah 5 kali mencoba, pengelola unduhan juga tidak dapat membantu.
@Vichoko , apakah Anda berhasil menyelesaikannya? jika ya, bagaimana?
Saya juga sangat frustrasi mencoba mengunduh kumpulan data yang mencakup dua file besar (12Gb dan 37Gb) selama berhari-hari.
Saya menemukan https://zenodo.org/record/261813 (https://gitlab.com/dvolgyes/zenodo_get) dan itu sangat membantu. Saya berhasil mengunduh seluruh catatan pada percobaan pertama.
Pada pandangan pertama saya tidak melihat sesuatu yang ajaib tentang itu, jadi saya kira triknya pasti ada di beberapa internal implementasi Python dari wget .
Link: https://zenodo.org/api/files/cb4ca1fa-1db1-40f9-8f39-0e9d3b2af7ae/musdb18hq.zip size: 21607.1 MB
0% [ ] 3121152 / 22656664047
Saya dapat mengunduh file 21GB lebih cepat pada tahun 2006 dengan dial-up. Apakah Zenodo kekurangan infrastruktur CDN? Mengapa tidak menggunakan bucket S3 atau GCS?
Saya pikir masalah ini harus dibuka kembali, mengingat Zenodo menunjukkan unduhan yang lambat dan tidak stabil. Atau jika ada masalah lain untuk melacak unduhan Zenodo?
Komentar yang paling membantu
Apakah ada cara yang lebih baik untuk mengunduh file besar daripada menggunakan peramban internet biasa? File besar melalui http cenderung gagal dalam beberapa jam, dan unduhan tidak dapat dilanjutkan.
Dalam kasus saya, saya mencoba mengunduh kumpulan data 50 GB.
Kecepatan unduh berkisar 500 Kbps dan koneksi gagal di antara 12 jam sejak unduhan berlangsung.
Saya sudah mencoba mengunduhnya setiap hari selama berbulan-bulan sekarang (saya membutuhkan dataset untuk tesis master saya).
Ada saran?