Unduh file dan folder dari keranjang Google Storage ke folder lokal [ditutup]

Jawaban:

150

Lihat alat gsutil . Anda dapat menggunakan perintah cp dengan opsi -R(rekursif) dan -m(multithreading).

gsutil -m cp -R gs://<bucket_name> .

Dan jika Anda ingin mencobanya dengan ember publik cobalah

gsutil -m cp -R gs://uspto-pair .

Percepatan yang diberikan oleh multithreading bisa sangat signifikan:

$ time gsutil cp -R gs://uspto-pair/docs/2010-08-28 .
...

real    0m12.534s

vs.

$ time gsutil -m cp -R gs://uspto-pair/docs/2010-08-28 .
...

real    0m3.345s
Sebastian Kreft
sumber
Saya sarankan untuk tidak mengunduh ember pasangan uspto secara membabi buta - ada banyak dokumen di sana ...
Cebjyre
1
Hal yang sangat penting di sini, adalah menginstal gsutil di komputer lokal Anda . Misalnya, Anda dapat melakukannya dengan menginstal Google Cloud SDK. Langkah ini saya lupa dan terus menggunakan gsutil di VM lokal proyek saya seperti orang bodoh.
Matthias
Apakah layanan ini gratis atau dapat ditagih? Suka operasi Kelas A?
Sudhanshu Gaur
2
Jika Anda mendownload sejumlah file besar dari bucket Anda ke HDD tradisional (bukan SSD), jangan gunakan -mflag untuk multi threading. Ini akan mengurangi waktu respons disk secara signifikan karena akan terus menerus memindahkan jarum di antara file yang berbeda. Saya mencoba menggunakan -mpada awalnya, hanya untuk membuat disk menjadi penghambat. Menghilangkan -mbendera akan membuat HDD menulis di lokasi fisik yang sama pada disk.
JR
ini menjengkelkan! Terima kasih
kninjaboi
67

Bagi mereka yang ingin menghindari pemasangan alat lokal seperti gsutil, ada cara untuk mengunduh file dan folder dari Google Cloud Storage seluruhnya di browser:

  1. Navigasikan ke: https://console.cloud.google.com/storage/browser/BUCKET_NAME
  2. Temukan folder / file yang ingin Anda download.
  3. Di kanan atas halaman, tekan ikon kode untuk membuka Cloud Shell.
  4. Buat folder sementara di mesin virtual Cloud Shell: mkdir Data
  5. Salin data Cloud Storage ke Datafolder sementara :gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
  6. Salin data ke dalam file zip: zip -r Data.zip Data
  7. Unduh file zip dengan menjalankan dl Data.zip, atau: membuka menu tarik-turun "..." di bilah alat, menekan "Unduh file", mengetik Data.zip, dan menekan "Unduh".

Sebagai alternatif untuk langkah 6 dan 7 (atau jika Anda menginginkan file tar, bukan zip):

. . 6b. Tekan ikon komputer (atau pensil) di toolbar, untuk membuka penjelajah Lingkungan Cloud Shell di tab baru.
. . 7b. Klik kanan Datafolder di browser direktori di sebelah kiri, dan tekan "Unduh". File tar akan diunduh ke komputer lokal Anda, yang kemudian dapat Anda ekstrak menggunakan 7-Zip atau sejenisnya.

Venryx
sumber
7
Yang ini bekerja seperti pesona bagi saya, TANPA paket berbayar apa pun!
nipunasudha
Apakah ada batasan ukuran untuk folder temp? Di sisi saya berhenti menyalin setelah 54%. Saya mencoba memindahkan 8,4 GB gambar untuk mengunduhnya.
ToughQuestions
1
@toughuestions Saya tidak tahu; Saya tidak pernah mencoba mengunduh konten sebanyak itu. Dengan asumsi ya (dari umpan balik Anda), saya sarankan untuk menginstal program gsutil ke komputer lokal Anda, dan menjalankannya dari sana: stackoverflow.com/q/39137053
Venryx
Saya akan mencobanya, terima kasih :-)
toughQuestions
1
Ada batasan 5 GB, jadi ini hanya berguna untuk yang lebih kecil. Solusi Keren.
pengguna32149
16

Dalam kasus gsutilmelempar pengecualian ( CommandException: Wrong number of arguments for "cp" command.) coba yang berikut ini:

gsutil -m cp -R gs://BUCKETNAME ./LOCALFOLDERNAME
Lausbert
sumber
Apakah layanan ini gratis atau dapat ditagih? Suka operasi Kelas A?
Sudhanshu Gaur
2

Dalam kasus saya, yang berhasil adalah menavigasi ke keranjang di gui browser dan mengeklik kiri file dan "Simpan file".
Ini jelas mengerikan untuk banyak file, tetapi Anda tentu saja dapat mengompresnya menjadi satu file (menggunakan konsol Google cloud).

lihat utas ini .

Selain itu, jika tidak memiliki bucket, Anda dapat membuatnya , lalu menguploadnya menggunakan konsol gcloud, misgsutil cp file.tgz gs://<bucket>

Matthias
sumber
2
Saya baru menyadari mengapa jawaban Sebastian tidak berhasil untuk saya .. untuk beberapa alasan saya benar-benar buta terhadap fakta bahwa saya perlu menginstal gsutil di komputer lokal saya . Tetap menggunakannya di konsol gcloud dalam browser yang mengunduh ke VM proyek saya di sana.
Matthias
Shell gcloud dalam browser mendukung pengunduhan file vm-nya ke komputer lokal Anda, jadi Anda sebenarnya tidak perlu menginstal gsutildi komputer lokal Anda: stackoverflow.com/a/59567734/2441655
Venryx
@Dilvane entah bagaimana opsi -m tidak bekerja untuk saya ... tetapi -r melakukan seperti di bawah ini ... bharathkumarraju @ R77-NB193 raju% gsutil cp -r gs: // testbucket. Menyalin gs: //testbucket/asset-manifest.json ...
BharathKumarRaju Dasararaju
2

Inilah yang berhasil untuk saya:

Langkah 1: instal gsutil di komputer lokal Anda: https://cloud.google.com/storage/docs/gsutil_install?hl=fr

Langkah 2: Salin file dari bucket ke komputer lokal Anda dengan menjalankan perintah:gsutil cp [-r if repository] gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION_IN_LOCAL]

HLeb
sumber