gcp gcloud storage cp - ghdrako/doc_snipets GitHub Wiki

gcloud storage cp

gcloud storage cp to nowa, natywna wierszowa komenda Google Cloud CLI do transferu danych, która w testach wykazuje znacznie wyższą wydajność niż tradycyjne gsutil cp (np. do 94 % szybsze pobieranie i 57 % szybsze wysyłanie dużych plików) dzięki zaawansowanej równoległości i nowej bibliotece haszującej, a Google oficjalnie rekomenduje ją jako domyślny sposób interakcji z Cloud Storage Google Cloud Google Cloud Community Mimo to gsutil cp pozostaje bogatsze w opcje (np. rozbudowane wzorce wildcard, zarządzanie ACL, synchronizacja katalogów), a w niektórych scenariuszach – szczególnie przy bardzo specyficznych potrzebach – nadal może być lepszym wyborem download.huihoo.com

Nowa strategia równoległości i haszowanie

  • Zamiast prostego dzielenia pliku na kawałki, gcloud storage buduje graf zależności pomiędzy zadaniami, co minimalizuje narzut zarządzania wątkami i pozwala wykonywać więcej operacji jednocześnie Google Cloud
  • Wykorzystuje nową bibliotekę haszującą, przyspieszającą weryfikację integralności danych w locie Google Cloud
  • Adaptuje poziom równoległości automatycznie do rozmiaru danych i dostępnych zasobów maszyny, bez konieczności ręcznej konfiguracji.

Funkcjonalność i dostępne opcje

Co oferuje gcloud storage cp

  • Prosty interfejs przypominający polecenie cp z Uniksa (gcloud storage cp SOURCE DEST DEST) parallelworks.com
  • Domyślnie wznawialne transfery (resumable), bez dodatkowych przełączników.
  • Obsługa autentykacji i kontekstu projektu z poziomu jednolitego CLI (gcloud auth, gcloud config) Google Cloud
  • Możliwość automatycznego tworzenia bucketu, jeżeli nie istnieje, przez przekazanie --auto-create.
  • Integracja z Cloud IAM i Policy Analyzer, dzięki czemu łatwiej sprawdzić uprawnienia w locie.

Czego jeszcze brakuje (w porównaniu do gsutil cp)

  • Zaawansowane wzorce wildcard dla nazw plików i katalogów (np. gs://bucket/**/*.log).
  • Synchronizacja katalogów (-m rsync) oraz bardziej rozbudowane opcje ACL i metadanych.
  • Pełna kontrola nad parallel composite uploads i ich konfiguracją (w gsutil są przełączniki typu -o GSUtil:parallel_composite_upload_threshold=150M).
  • Niektóre edge-case’y: raporty o błędach przy transferze bardzo dużych plików (patrz zgłoszenia na StackOverflow) Stack Overflow .

Permissions

storage.objects.get (for the source objects)
storage.buckets.get12 (for the destination bucket)
storage.objects.list4 (for the destination bucket)
storage.objects.create (for the destination bucket)
storage.objects.delete5 (for the destination bucket)

dla gcloud storage cp uprawnienie storage.buckets.get jest wymagane gdy "This permission is required to perform parallel composite uploads if the gcloud CLI property storage/parallel_composite_upload_compatibility_check is set to True."

~/projects/gerrit/inv-dev$ gcloud config get-value storage/parallel_composite_upload_compatibility_check
True
~/projects/gerrit/inv-dev$ gcloud config set storage/parallel_composite_upload_compatibility_check False
Updated property [storage/parallel_composite_upload_compatibility_check].
~/projects/gerrit/inv-dev$  gcloud config get-value storage/parallel_composite_upload_compatibility_check
False