Unduh, verifikasi, dan ekstrak arsip dengan mudah
Jika Anda memiliki kumpulan data atau arsip lain yang ingin Anda sediakan bagi pengguna Anda, dan memastikan mereka selalu memiliki versi terbaru dan diunduh dengan benar, fastdownload
dapat membantu.
Menggunakan pip:
pip install fastdownload
...atau menggunakan conda:
conda install -c fastai fastdownload
Situasi di mana Anda mungkin ingin menggunakan fastdownload
adalah ketika Anda memiliki satu atau lebih URL yang mengarah ke beberapa arsip yang ingin Anda sediakan, dan Anda ingin memastikan bahwa pengguna Anda mengunduh arsip tersebut dengan benar, memiliki versi terbaru, dan semudah itu semaksimal mungkin bagi mereka untuk mengakses informasi dalam arsip tersebut.
Pengguna Anda cukup memanggil satu metode, FastDownload.get
, meneruskan URL yang diperlukan, dan URL akan diunduh dan diekstraksi ke direktori yang Anda pilih. Jalur ke file yang diekstraksi dikembalikan. Jika URL tersebut telah diunduh, maka arsip atau konten yang di-cache akan digunakan secara otomatis. Namun, jika ukuran atau hash arsip tersebut berbeda dari yang seharusnya, maka pengguna akan diberi tahu, dan versi baru akan diunduh.
Di masa mendatang, Anda mungkin ingin memperbarui satu atau beberapa arsip Anda. Saat Anda melakukannya, fastdownload
akan memastikan pengguna Anda memiliki versi terbaru, dengan memeriksa arsip unduhan mereka terhadap ukuran file terbaru dan informasi hash.
Misalnya, fastai
menggunakan fastdownload
untuk menyediakan akses ke kumpulan data untuk pembelajaran mendalam. pengguna fastai
dapat mengunduh dan mengekstraknya dengan satu perintah, menggunakan nilai kembalian untuk mengakses file. File-file tersebut secara otomatis ditempatkan di subdirektori yang sesuai dari folder .fastai
di homedir pengguna. Jika kumpulan data diperbarui, pengguna akan diberi tahu saat berikutnya mereka menggunakan kumpulan data tersebut, dan versi terbaru secara otomatis diunduh dan diekstraksi untuk mereka.
Saat pengguna Anda mengunduh arsip, fastdownload
akan secara otomatis menyimpannya ke direktori, memeriksa apakah ukuran dan hash cocok, dan mengekstrak isinya. Penggunaan minimal untuk mengunduh dan mengekstrak adalah:
dari fastdownload import FastDownloadd = FastDownload()path = d.get('https://...')
Setelah ini, path
akan berisi jalur tempat file yang diekstraksi berada. Secara default, arsip disimpan ke {base}/archive
, dan diekstraksi ke {base}/data
. {base}
defaultnya adalah ~/.fastdownload
. Jika ada lebih dari satu file atau folder di root arsip yang diunduh, maka folder baru akan dibuat di data
untuk isinya.
Daripada get
, gunakan download
untuk mengunduh URL tanpa mengekstraknya, atau extract
untuk mengekstrak URL tanpa mengunduhnya (dengan asumsi URL sudah diunduh ke direktori archive
). Semua metode ini menerima parameter force
yang akan mengunduh/mengekstrak arsip meskipun arsip sudah ada.
Anda dapat mengubah salah satu atau semua jalur base
, archive
, dan data
dengan meneruskannya ke FastDownload
:
d = FastDownload(base='~/.mypath', archive='diunduh', data='diekstraksi')
Anda dapat menghapus file arsip cache dan/atau konten yang diekstraksi dengan rm
:
d.rm('https://...')
fastdownload
akan menambahkan file download_checks.py
ke modul Python Anda yang berisi ukuran file dan hash untuk arsip Anda. File tersebut terletak di direktori yang sama dengan modul yang Anda pilih, misalnya:
d = Unduhan Cepat(modul=fastai.some_module)
Kemudian gunakan update
untuk membuat atau memperbarui ukuran dan hash untuk URL:
d.perbarui('https://...')
Anda sekarang akan menemukan ada file bernama download_checks.py
di direktori yang sama tempat fastai.some_module
berada, yang berisi dict Python dengan URL, ukuran, dan hash untuk file ini. Jika Anda telah mengunduh file ini sebelumnya ke jalur archive
Anda, maka file tersebut akan digunakan, alih-alih mengunduh salinan baru. Gunakan get(force=True)
terlebih dahulu untuk mengunduh salinan baru jika Anda memilikinya di arsip Anda.
Jika ada file bernama config.ini
di direktori base
Anda, maka archive
kunci dan data
akan digunakan sebagai nilai default untuk FastDownload
. File harus dalam format configparser. Berikut contoh config.ini
:
[DEFAULT] archive = downloaded data = extracted
Jika tidak ada file ini, file ini akan dibuat secara otomatis untuk Anda menggunakan detail yang Anda teruskan ke FastDownload
.
Anda dapat menambahkan pasangan kunci/nilai tambahan apa pun ke file konfigurasi yang Anda inginkan. Saat Anda memanggil FastDownload.get
berikan extract_key
untuk menggunakan kunci selain data
guna memilih lokasi tujuan ekstrak.