Google Cloud Storage Administrere Skuffer

Google Cloud Storage (GCS) er et veldig enkelt og kraftig objektlagringstilbud fra Google som en del av sitt Google Cloud Platform (GCP). Det gir en svært holdbar, skalerbar, konsekvent og tilgjengelig lagringsløsning for utviklere, og er den samme teknologien som Google bruker til å drive sin egen lagringsplass. 

Det kan faktureres med a betal for det du bruker modell, og GCP kommer med en 60-dagers prøveperiode, så det er gratis å prøve å se om det passer til organisasjonens behov. GCS har ulike servicenivåer (også kalt lagringsklasser) som kan velges etter behov (detaljert diskusjon om disse er ikke omfattet av denne opplæringen). GCS kan brukes til en rekke formål, for eksempel visning av statisk / dynamisk nettstedinnhold, lagring av brukerspesifikke applikasjonsfiler, gjenoppretting av katastrofer, eller å lage store dataobjekter nedlastbare for brukere.

De som har jobbet med GCP vil vite at alt i GCP dreier seg om prosjekter. Hvert prosjekt kan ha mange bøtter rundt hvilken arkitekturen til Google Cloud Storage er strukturert. Skuffer er de grunnleggende beholderne på GCS som inneholder lagrede data. Disse brukes som grunnleggende blokker for å organisere dataene dine og se ut som mapper på et operativsystem, men de kan ikke nestes. 

Hver bøtte kan inneholde et hvilket som helst antall objekter, som kan være mapper og / eller filer. En bøtte er tildelt en lagringsklasse og geografisk plassering når den opprettes. Disse innstillingene kan angis når du lager bøtte, men kan ikke endres senere.

Skuffer har spesifikke navngivningskonvensjoner som må følges strengt, ellers vil GCP ikke tillate deg å lage en bøtte. Bucket navn er globalt unikt, så de må velges på en måte som forhindrer konflikter. Et navn som brukes av en slettet bøtte kan imidlertid gjenbrukes. 

Også navnet kan ikke endres når det har blitt tildelt en bøtte. Den eneste løsningen hvis du vil endre den, er å opprette en ny bøtte med ønsket navn, flytte innholdet fra forrige bøtte til den nye, og deretter slette den forrige bøtte.

I denne opplæringen vil jeg dekke hvordan du håndterer skuffer fra Google Cloud Console. Dette etterfølges av et Python-skript hvor jeg vil demonstrere å utføre de samme operasjonene programmatisk.

Bruke Google Cloud Console

Først, la oss se hvordan du administrerer bøtter ved hjelp av nettbrukergrensesnittet som GCP tilbyr, kjent som Google Cloud Console. 

Åpne Storage Browser i en nettleser av ditt valg. Hvis du er en første gangs bruker, blir du bedt om å opprette et prosjekt først. Også et alternativ vil bli vist for å registrere deg for en gratis prøveversjon. Gå videre med registreringen av gratis prøveversjon, ellers får du ikke lov til å lage en ny bøtte selv. Som standard gir GCP bare en gratis bøtte per App Engine-forekomst. 

Når du er ferdig med alle disse formelle prosessene, bør du navigere til denne siden åpne siden som vises nedenfor.

For å opprette en ny bøtte, klikk på Lag bøtte knappen fremhevet ovenfor. Opprett en bøtte ved å fylle ut et ønsket navn som vist nedenfor. Navnet skal følge konvensjonene for bøtteavtale.

Når du har opprettet en bøtte, vil GCS-nettleseren vise den. Skuffer kan slettes ved å velge dem fra listen og klikke på sletteknappen.

Hvis du klikker på oppdateringsknappen, fyller du brukergrensesnittet med eventuelle endringer i listen over skuffer uten å forfriskne hele siden.

Administrere Skuffer Programmatisk

La oss først lage en Google Compute Engine-forekomst, da det vil tillate rask demonstrasjon av de målrettede konseptene, i stedet for å håndtere ekstra autentiseringstrinn på lokale maskiner. For å opprette en GCE-forekomst, åpne lenken og klikk på Opprett instans knappen som vist nedenfor.

Et skjema vil komme opp og spørre om relevante detaljer, som kan fylles ut for din bekvemmelighet. Når GCE-forekomsten er opprettet, åpner du SSH-klienten som vist nedenfor, som som standard åpnes i et nytt nettleservindu.

SSH-klientskjermen vil se ut som det vises nedenfor. Alle de videre operasjonene i denne opplæringen vil bli gjort direkte på SSH-klienten selv.

Skrive et Python Script

Nedenfor er kommandoene du trenger å kjøre for å sette opp den nyopprettede serveren for et Python-utviklingsmiljø.

$ sudo apt-get oppdatering $ sudo apt-install install python-dev python-setuptools $ sudo easy_install pip 

Nedenfor er avhengigheten som må installeres for å skrive dette skriptet.

$ sudo pip installere google-api-python-klienten

På produksjonssystemer er det ikke tilrådelig å installere biblioteker ved hjelp av "sudo". Vennligst følg Python virtualenv beste praksis for dette.

gcs_bucket.py

importer sys fra pprint import pprint fra googleapiclient import funnet fra googleapiclient import http fra oauth2client.client import GoogleCredentials def create_service (): credentials = GoogleCredentials.get_application_default () return discovery.build ('lagring', 'v1', legitimasjon = legitimasjon) def list_buckets (prosjekt): service = create_service () res = service.buckets (). liste (prosjekt = prosjekt) .execute () pprint (res) def create_bucket (prosjekt, bucket_name): service = create_service () res = service.buckets () = ("navn": bucket_name) .execute () pprint (res) def delete_bucket (bucket_name): service = create_service () res = service.buckets () bucket_name) .execute () pprint (res) def get_bucket (bucket_name): service = create_service () res = service.buckets (). få (bucket = bucket_name) .execute () pprint (res) def print_help (): print " "" Bruk: python gcs_bucket.py  Kommandoen kan være: hjelp: Skriver ut denne hjelpelisten: Viser alle bøssene i spesifisert prosjektopprettelse: Opprett det angitte bøttenavnet i angitt prosjektuttrykk: Slett det angitte bøttenavnet får: Få detaljer om det angitte bøttenavnet "" "hvis __name__ = = "__main__": hvis len (sys.argv) < 2 or sys.argv[1] == "help" or \ sys.argv[1] not in ['list', 'create', 'delete', 'get']: print_help() sys.exit() if sys.argv[1] == 'list': if len(sys.argv) == 3: list_buckets(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'create': if len(sys.argv) == 4: create_bucket(sys.argv[2], sys.argv[3]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'delete': if len(sys.argv) == 3: delete_bucket(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'get': if len(sys.argv) == 3: get_bucket(sys.argv[2]) sys.exit() else: print_help() sys.exit()

Det ovennevnte Python-skriptet viser de viktigste operasjonene som kan utføres på en bøtte. Disse inkluderer:

  • Opprettelse av en ny bøtte i et prosjekt
  • oppføring av alle bøtter i et prosjekt
  • få detaljer om en bestemt bøtte
  • sletter en bestemt bøtte

La oss se hvordan disse operasjonene ser ut når skriptet kjøres.

$ python gcs_bucket.py Bruk: python gcs_bucket.py  Kommandoen kan være: hjelp: Skriver ut denne hjelpelisten: Viser alle bøssene i spesifisert prosjektopprettelse: Opprett det angitte bøttenavnet i angitt prosjektuttrykk: Slett det angitte bøtteavnet får: Få detaljer om det angitte bøttenavnet $ python gcs_bucket.py liste tutsplus-demo u'items ': [u'etag': u'CAE =', u'id': u'tutsplus-demo.appspot.com ', u'kind': u'storage # bucket ', u'location ': u'US', u'metageneration ': u'1', navnet ditt ': u'tutsplus-demo.appspot.com', u'projektnummer ': u'1234567890', du er selvLink ' : u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo.appspot.com ', u'storageClass': u'STANDARD ', du er opprettet': u'2016-10-05T15 : 30: 52.237Z ', uoppdatert': u'2016-10-05T15: 30: 52.237Z '], du kjenner: u'storage # buckets' $ python gcs_bucket.py opprett tutsplus-demo tutsplus -demo-test u'etag': u'CAE = ', u'id': u'tutsplus-demo-test', u'kind ': u'storage # bucket', u'location ': u'US ', u'metageneration': u'1 ', navn': du'tutsplus-demo-test ', u'projektnummer': u'1234567890 ', du er selvLink': u'https: //www.goog leapis.com/storage/v1/b/tutsplus-demo-test ', u'storageClass': u'STANDARD ', du er opprettet': u'2016-10-07T05: 55: 29.638Z ', uoppdatert' : u'2016-10-07T05: 55: 29.638Z ' $ python gcs_bucket.py få tutsplus-demo-test u'etag': u'CAE =', u'id': u'tutsplus-demo-test 'u'kind': u'storage # bucket ', u'location': u'US ', u'metageneration': u'1 ', navn': du'tutsplus-demo-test ' projectNumber ': u'self3Link': u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo-test ', u'storageClass': u'STANDARD ', du' timeCreated ': u'2016-10-07T05: 55: 29.638Z', uoppdatert ': u'2016-10-07T05: 55: 29.638Z' $ python gcs_bucket.py slette tutsplus-demotest "

Konklusjon

I denne veiledningen så du hvordan du administrerer skuffer på Google Cloud Storage. Dette ble også ledsaget av en liten introduksjon til å lage en Google Compute Engine-forekomst og bruke den via en SSH-klient.

I neste veiledning vil jeg dekke hvordan man håndterer objekter, dvs. mapper og filer i en bøtte.