Úvod do cloudového úložiska Google s technológiou Java

1. Prehľad

Google Cloud Storage ponúka online úložisko šité na mieru potrebám jednotlivých aplikácií na základe polohy, frekvencie prístupu a nákladov. Na rozdiel od webových služieb Amazon používa cloudové úložisko Google jediné API pre prístup na vysokú, strednú a nízku frekvenciu.

Rovnako ako väčšina cloudových platforiem, aj Google ponúka bezplatnú úroveň prístupu; cenové podrobnosti nájdete tu.

V tomto tutoriáli sa pripojíme k úložisku, vytvoríme segment, zapíšeme, prečítame a aktualizujeme údaje. Pri používaní rozhrania API na čítanie a zápis údajov budeme tiež používať gsutil cloudová úložná utilita.

2. Nastavenie cloudového úložiska Google

2.1. Maven závislosť

Musíme do našej pridať jednu závislosť pom.xml:

 com.google.cloud google-cloud-storage 1.17.0 

Maven Central má najnovšiu verziu knižnice.

2.2. Vytvorte autentifikačný kľúč

Pred pripojením k službe Google Cloud je potrebné nakonfigurovať autentifikáciu. Aplikácie Google Cloud Platform (GCP) načítajú súkromný kľúč a informácie o konfigurácii z konfiguračného súboru JSON. Tento súbor generujeme prostredníctvom konzoly GCP. Prístup do konzoly vyžaduje platný účet Google Cloud Platform.

Našu konfiguráciu vytvoríme:

  1. Prechod na konzolu Google Cloud Platform
  2. Ak sme ešte nedefinovali projekt GCP, klikneme na ikonu vytvoriť a zadajte názov projektu, napríklad „baeldung-cloud-tutorial
  3. Vyberte „nový účet služby”Z rozbaľovacieho zoznamu
  4. Pridajte názov ako „baeldung-cloud-storage”Do poľa názvu účtu.
  5. V časti „úlohu”Vyberte Projekt a potom v podponuke Vlastník.
  6. Vyberte možnosť vytvoriť a konzola stiahne súbor so súkromným kľúčom.

Rola v kroku 6 autorizuje účet na prístup k prostriedkom projektu. Z dôvodu jednoduchosti sme tomuto účtu poskytli úplný prístup ku všetkým prostriedkom projektu.

Pre produkčné prostredie by sme definovali rolu, ktorá zodpovedá prístupu, ktorý aplikácia potrebuje.

2.3. Nainštalujte si autentifikačný kľúč

Ďalej skopírujeme súbor stiahnutý z konzoly GCP na vhodné miesto a ukážeme na GOOGLE_APPLICATION_CREDENTIALS premenná prostredia. Toto je najjednoduchší spôsob načítania poverení, aj keď sa nižšie pozrieme na ďalšiu možnosť.

Pre Linux alebo Mac:

exportovať GOOGLE_APPLICATION_CREDENTIALS = "/ cesta / do / súboru"

Pre Windows:

nastaviť GOOGLE_APPLICATION_CREDENTIALS = "C: \ cesta \ k \ súboru"

2.4. Nainštalujte si cloudové nástroje

Google poskytuje niekoľko nástrojov na správu svojej cloudovej platformy. Ideme použiť gsutil počas tohto tutoriálu čítať a zapisovať dáta popri API.

Môžeme to urobiť v dvoch jednoduchých krokoch:

  1. Nainštalujte si cloudovú sadu SDK podľa pokynov tu pre našu platformu.
  2. Postupujte podľa Rýchleho štartu pre našu platformu tu. V kroku 4 z Inicializujte SDK, vyberieme názov projektu v kroku 4 v časti 2.2 vyššie („baeldung-cloud-storage“Alebo ktorékoľvek meno, ktoré ste použili).

gsutil je teraz nainštalovaný a nakonfigurovaný na čítanie údajov z nášho cloudového projektu.

3. Pripojenie k Skladovanie a vytvorenie a Vedro

3.1. Pripojiť k Skladovanie

Predtým, ako budeme môcť používať úložisko Google Cloud, musíme vytvoriť objekt služby. Ak sme už nastavili GOOGLE_APPLICATION_CREDENTIALS premennú prostredia, môžeme použiť predvolenú inštanciu:

Úložisko úložiska = StorageOptions.getDefaultInstance (). GetService (); 

Ak nechceme používať premennú prostredia, musíme vytvoriť a Poverovacie listiny inštanciu a odovzdať ju Skladovanie s názov projektu:

Credentials credentials = GoogleCredentials .fromStream (nový FileInputStream ("cesta / do / súboru")); Úložisko úložiska = StorageOptions.newBuilder (). SetCredentials (poverenia) .setProjectId ("baeldung-cloud-tutorial"). Build (). GetService (); 

3.2. Vytvorenie a Vedro

Teraz, keď sme pripojení a overení, môžeme vytvoriť segment. Vedrá sú nádoby, ktoré držia predmety. Môžu byť použité na organizáciu a kontrolu prístupu k údajom.

Počet objektov v segmente nie je nijako obmedzený. GCP obmedzuje počet operácií na segmentoch a nabáda návrhárov aplikácií, aby zdôrazňovali operácie skôr s objektmi ako s segmentmi.

Vytvorenie vedra si vyžaduje a BucketInfo:

Vedro vedro = storage.create (BucketInfo.of ("baeldung-bucket")); 

V tomto jednoduchom príklade pomenujeme segment a akceptujeme predvolené vlastnosti. Názvy segmentov musia byťglobálne jedinečný. Ak vyberieme názov, ktorý sa už používa, vytvoriť () zlyhá.

3.3. Skúška a Vedro S gsutil

Pretože teraz máme vedro, môžeme ho preskúmať pomocou gsutil.

Poďme otvoriť príkazový riadok a pozrieť sa na:

$ gsutil ls -L -b gs: // baeldung-1-bucket / gs: // baeldung-1-bucket /: Trieda úložiska: ŠTANDARDNÉ Obmedzenie umiestnenia: USA Povolené spravovanie verzií: Žiadne Konfigurácia protokolovania: Žiadna Konfigurácia webových stránok: Žiadna Konfigurácia CORS : Žiadna Konfigurácia životného cyklu: Žiadny Žiadateľ Zapnuté platby: Žiadne Štítky: Žiadne Čas vytvorenia: Ne, 11. februára 2018 21:09:15 GMT Aktualizovaný čas: Ne, 11. februára 2018 21:09:15 Generovanie GMT: 1 ACL: [{" entity ":" project-ownership-385323156907 "," projectTeam ": {" projectNumber ":" 385323156907 "," team ":" owner "}," role ":" VLASTNÍK "}, ...] Predvolený ACL: [ {"entity": "project-ownership-385323156907", "projectTeam": {"projectNumber": "385323156907", "team": "vlastníci"}, "role": "VLASTNÍK"}, ...]

gsutil vyzerá veľmi podobne ako príkazy shellu a každý, kto je oboznámený s príkazovým riadkom Unix, by sa tu mal cítiť veľmi príjemne. Všimnite si, že sme na ceste k nášmu segmentu prešli ako adresu URL: gs: // baeldung-1-bucket /, spolu s niekoľkými ďalšími možnosťami.

The je Voľba vytvorí zoznam alebo predmety alebo vedierkaa -L Táto možnosť označila, že požadujeme podrobný zoznam, takže sme dostali podrobnosti o vedro vrátane časov vytvorenia a riadenia prístupu.

Pridajme nejaké dáta do nášho vedra!

4. Čítanie, zápis a aktualizácia údajov

V službe Google Cloud Storage sú objekty uložené v Blobs; Blob mená môžu obsahovať ľubovoľný znak Unicode, obmedzený na 1024 znakov.

4.1. Zápis údajov

Zachráňme a String do nášho vedra:

Reťazcová hodnota = "Ahoj, svet!"; byte [] bytes = value.getBytes (UTF_8); Blob blob = bucket.create ("my-first-blob", bajty); 

Ako vidíte, objekty sú jednoducho poľom polí bajtov vo vedre, tak uložíme a String jednoduchým fungovaním s jeho surovými bajtmi.

4.2. Čítanie údajov pomocou gsutil

Teraz, keď máme vedro s predmetom, poďme sa na to pozrieť gsutil.

Začnime uvedením obsahu nášho segmentu:

$ gsutil ls gs: // baeldung-1-bucket / gs: // baeldung-1-bucket / my-first-blob

Prešli sme gsutil the je možnosť znova, ale vynechaná -b a -L, požiadali sme preto o krátky zoznam objektov. Dostávame zoznam URI pre každý objekt, ktorý je v našom prípade jeden.

Poďme preskúmať objekt:

$ gsutil cat gs: // baeldung-1-bucket / my-first-blob Hello World!

Kat zreťazuje obsah objektu na štandardný výstup. Vidíme String napísali sme do Blob.

4.3. Čítanie údajov

Blobom je priradené a BlobId pri stvorení.

Najjednoduchší spôsob, ako získať objekt Blob, je BlobId:

Blob blob = storage.get (blobId); Hodnota reťazca = nový reťazec (blob.getContent ()); 

Ideme na id Skladovanie a získajte Blob na oplátku a getContent () vráti bajty.

Ak nemáme BlobId, môžeme vyhľadať segment podľa názvu:

Bloby stránky = bucket.list (); for (Blob blob: blobs.getValues ​​()) {if (name.equals (blob.getName ())) {return new String (blob.getContent ()); }}

4.4. Aktualizácia údajov

Môžeme aktualizovať a Blob jeho načítaním a následným prístupom k jeho WriteableByteChannel:

String newString = "Ahoj!"; Blob blob = storage.get (blobId); Kanál WritableByteChannel = blob.writer (); channel.write (ByteBuffer.wrap (newString.getBytes (UTF_8))); channel.close ();

Poďme preskúmať aktualizovaný objekt:

$ gsutil cat gs: // baeldung-1-bucket / my-first-blob Ahoj!

4.5. Uložte objekt do súboru a potom odstráňte

Uložme aktualizovaný objekt do súboru:

$ gsutil copy gs: // baeldung-1-bucket / my-first-blob my-first-blob Kopírovanie gs: // baeldung-1-bucket / my-first-blob ... / [1 súborov] [9,0 B / 9,0 B] Operácia dokončená na 1 objekte / 9,0 B. Grovers-Mill: ~ egoebelbecker $ cat môj prvý blob Ahoj!

Podľa očakávania kópia voľba skopíruje objekt do názvu súboru uvedeného v príkazovom riadku.

gsutil môže kopírovať akýkoľvek objekt zo služby Google Cloud Storage do miestneho súborového systému za predpokladu, že je dostatok miesta na jeho uloženie.

Dokončíme to uprataním:

$ gsutil rm gs: // baeldung-1-bucket / my-first-blob Odstránenie gs: // baeldung-1-bucket / my-first-blob ... / [1 objekty] Operácia bola dokončená nad 1 objektmi. $ gsutil ls gs: // baeldung-1-bucket / $

rm (del funguje tiež) odstráni zadaný objekt

5. Záver

V tomto krátkom tutoriáli sme vytvorili poverenia pre Google Cloud Storage a pripojenie k infraštruktúre. Vytvorili sme vedro, napísali údaje a potom sme ich prečítali a upravili. Keď pracujeme s API, tiež sme používali gsutil preskúmať cloudové úložisko pri vytváraní a čítaní údajov.

Diskutovali sme tiež o tom, ako používať segmenty a efektívne zapisovať a upravovať údaje.

Ukážky kódu, ako vždy, nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found