Bevezetés a Google Cloud Storage-ba Java-val

1. Áttekintés

A Google Cloud Storage az egyedi alkalmazások igényeihez szabott online tárhelyet kínál a hely, a hozzáférés gyakorisága és a költségek alapján. Az Amazon Web Services-től eltérően a Google Cloud Storage egyetlen API-t használ a magas, közepes és alacsony frekvenciájú hozzáféréshez.

A legtöbb felhőplatformhoz hasonlóan a Google is ingyenes hozzáférési szintet kínál; az árképzési részletek itt találhatók.

Ebben az oktatóanyagban csatlakozunk a tárhelyhez, létrehozunk egy vödröt, írunk, olvasunk és frissítünk adatokat. Miközben az API-t az adatok olvasására és írására használjuk, az gsutil felhő tároló segédprogram.

2. A Google Cloud Storage beállítása

2.1. Maven-függőség

Egyetlen függőséget kell hozzáadnunk a sajátunkhoz pom.xml:

 com.google.cloud google-cloud-storage 1.17.0 

A Maven Central rendelkezik a könyvtár legújabb verziójával.

2.2. Hozzon létre hitelesítési kulcsot

Mielőtt csatlakozhatunk a Google Cloud szolgáltatáshoz, konfigurálnunk kell a hitelesítést. A Google Cloud Platform (GCP) alkalmazások titkos kulcsot és konfigurációs információkat töltenek be egy JSON konfigurációs fájlból. Ezt a fájlt a GCP konzolon keresztül generáljuk. A konzolhoz való hozzáféréshez érvényes Google Cloud Platform-fiókra van szükség.

Konfigurációnkat az alábbiak szerint hozzuk létre

  1. Ugrás a Google Cloud Platform Console-ra
  2. Ha még nem definiáltunk egy GCP-projektet, akkor kattintson a gombra teremt gombot, és írja be a projekt nevét, például:baeldung-cloud-tutorial
  3. Válassza a „új szolgáltatási fiók”A legördülő listából
  4. Adjon hozzá egy nevet, például:baeldung-cloud-storage”A fiók neve mezőbe.
  5. A „szerep”Válassza a Projekt elemet, majd az almenüben a Tulajdonos lehetőséget.
  6. Válassza a Létrehoz lehetőséget, és a konzol letölt egy privát kulcsfájlt.

A 6. lépésben szereplő szerep felhatalmazza a fiókot a projekt erőforrásainak elérésére. Az egyszerűség kedvéért teljes hozzáférést biztosítottunk ehhez a fiókhoz az összes projektforráshoz.

Termelési környezetben meghatározunk egy szerepet, amely megfelel az alkalmazás igényeinek megfelelő hozzáférésről.

2.3. Telepítse a Hitelesítési kulcsot

Ezután átmásoljuk a GCP konzolról letöltött fájlt egy kényelmes helyre, és rámutatunk a GOOGLE_APPLICATION_CREDENTIALS környezeti változó rajta. Ez a legegyszerűbb módszer a hitelesítő adatok betöltésére, bár az alábbiakban megnézünk egy másik lehetőséget.

Linux vagy Mac esetén:

export GOOGLE_APPLICATION_CREDENTIALS = "/ elérési út / fájlba"

Windows esetén:

set GOOGLE_APPLICATION_CREDENTIALS = "C: \ path \ to \ file"

2.4. Telepítse a Cloud Tools alkalmazást

A Google számos eszközt kínál felhőplatformjuk kezeléséhez. Használni fogjuk gsutil az oktatóanyag során adatokat olvashat és írhat az API mellett.

Ezt két egyszerű lépésben tehetjük meg:

  1. Telepítse a Cloud SDK-t a platformunkra vonatkozó utasítások alapján.
  2. Kövesse itt a Quickstartot a platformunkhoz. A 4. lépésben Inicializálja az SDK-t, kiválasztjuk a projekt nevét a fenti 2.2 szakasz 4. lépésében (“baeldung-cloud-storageVagy bármelyik nevet használta).

gsutil telepítve van és konfigurálva van a felhőprojektünk adatainak olvasására.

3. Csatlakozás Tárolás és létrehozása a Vödör

3.1. Kapcsolodni Tárolás

A Google Cloud storage használatához létre kell hoznunk egy szolgáltatási objektumot. Ha már beállítottuk a GOOGLE_APPLICATION_CREDENTIALS környezeti változó, használhatjuk az alapértelmezett példányt:

Storage storage = StorageOptions.getDefaultInstance (). GetService (); 

Ha nem akarjuk használni a környezeti változót, akkor létre kell hoznunk a Hitelesítő adatok példányt, és továbbítsa Tárolás a projekt neve:

Hitelesítő adatok hitelesítő adatai = Google hitelesítő adatok .fromStream (új FileInputStream ("elérési út / fájl / fájl")); Storage storage = StorageOptions.newBuilder (). SetCredentials (hitelesítő adatok) .setProjectId ("baeldung-cloud-tutorial"). Build (). GetService (); 

3.2. A. Létrehozása Vödör

Most, hogy kapcsolódtunk és hitelesítettük, létrehozhatunk egy vödröt. A vödrök tárgyakat tároló konténerek. Használhatók az adatokhoz való hozzáférés megszervezésére és ellenőrzésére.

A vödörben lévő objektumok számának nincs korlátozása. A GCP korlátozza a műveletek számát a vödrökön és a arra ösztönzi az alkalmazás-tervezőket, hogy hangsúlyozzák az objektumok műveleteit, nem pedig a vödröket.

A vödör létrehozásához a BucketInfo:

Vödör vödör = storage.create (BucketInfo.of ("baeldung-vödör")); 

Ennél az egyszerű példánál egy csoport nevet adunk meg, és elfogadjuk az alapértelmezett tulajdonságokat. A vödör nevének meg kell lennieglobálisan egyedülálló. Ha egy már használt nevet választunk, teremt() el fog bukni.

3.3. Vizsgálat a Vödör Val vel gsutil

Mivel most van egy vödörünk, megvizsgálhatjuk gsutil.

Nyissunk meg egy parancssort, és nézzük meg:

$ gsutil ls -L -b gs: // baeldung-1-bucket / gs: // baeldung-1-bucket /: Tárolási osztály: STANDARD Tartózkodási hely korlátozása: USA Változat engedélyezve: Nincs Naplózási konfiguráció: Nincs Webhely konfiguráció: Nincs CORS konfiguráció : Nincs Életciklus-konfiguráció: Nincs Kérelmező fizetése engedélyezve: Nincs Címkék: Nincs Létrehozási idő: 2018. február 11., vasárnap 21:09:15 GMT Frissített idő: 2018. február 11., vasárnap 21:09:15 GMT Metageneráció: 1 ACL: [{" entitás ":" project-tulajdonosok-385323156907 "," projectTeam ": {" projectNumber ":" 385323156907 "," team ":" tulajdonosok "," role ":" TULAJDONOS "}, ...] Alapértelmezett ACL: [ {"entitás": "project-tulajdonosok-385323156907", "projectTeam": {"projectNumber": "385323156907", "team": "tulajdonosok"}, "role": "TULAJDONOS"}, ...]

gsutil nagyon hasonlít a shell parancsokra, és bárki, aki ismeri a Unix parancssort, itt nagyon jól érezheti magát. Figyeljük meg, hogy URL-címként eljutottunk a vödörünk elérési útján: gs: // baeldung-1-bucket /, néhány más lehetőséggel együtt.

A ls opció hoz létre listát vagy tárgyakat vagy vödrök, és a -L opció jelezte, hogy részletes listára vágyunk - ezért részleteket kaptunk a vödör beleértve a létrehozási időket és a hozzáférés-szabályozásokat.

Adjunk hozzá néhány adatot a vödörünkhöz!

4. Adatok olvasása, írása és frissítése

A Google Cloud Storage szolgáltatásban az objektumokat a rendszer tárolja Foltok; Folt a nevek bármilyen Unicode karaktert tartalmazhatnak, 1024 karakterre korlátozva.

4.1. Adatok írása

Mentsünk egy Húr a vödörünkhöz:

Karaktersorozat = "Helló, Világ!"; bájt [] bájt = value.getBytes (UTF_8); Blob blob = bucket.create ("első-blob", bájtok); 

Amint láthatja, az objektumok egyszerűen tömbök bájtokat a vödörben, ezért tárolunk egy Húr egyszerűen a nyers bájtjaival operálva.

4.2. Adatok olvasása a következővel: gsutil

Most, hogy van egy vödör, amelyben egy tárgy van, vessünk egy pillantást gsutil.

Kezdjük a vödör tartalmának felsorolásával:

$ gsutil ls gs: // baeldung-1-vödör / gs: // baeldung-1-bucket / my-first-blob

Átmentünk gsutil a ls opció ismét, de kihagyva -b és -L, ezért kértük a tárgyak rövid felsorolását. Minden objektumhoz megkapjuk az URI-k listáját, amely esetünkben egy.

Vizsgáljuk meg az objektumot:

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

Macska összefűzi az objektum tartalmát szabványos kimenetre. Látjuk a Húr írtunk a Folt.

4.3. Adatok olvasása

A foltokhoz a BlobId teremtéskor.

A Blob letöltésének legegyszerűbb módja a BlobId:

Blob blob = storage.get (blobId); Karakterlánc értéke = új karakterlánc (blob.getContent ()); 

Átadjuk az azonosítót Tárolás és megkapja a Folt cserébe, és getContent () visszaadja a bájtokat.

Ha nincs meg BlobId, név szerint kereshetünk a vödörben:

Oldalfoltok = bucket.list (); mert (Blob blob: blobs.getValues ​​()) {if (name.equals (blob.getName ())) {return new String (blob.getContent ()); }}

4.4. Adatok frissítése

Frissíthetjük a Folt lekérésével, majd annak elérésével WriteableByteChannel:

String newString = "Viszlát most!"; Blob blob = storage.get (blobId); WritableByteChannel channel = blob.writer (); channel.write (ByteBuffer.wrap (newString.getBytes (UTF_8))); csatorna.zár ();

Vizsgáljuk meg a frissített objektumot:

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

4.5. Objektum mentése fájlba, majd Törlés

Mentsük a frissített objektumot egy fájlba:

$ gsutil copy gs: // baeldung-1-bucket / my-first-blob my-first-blob gs másolása: // baeldung-1-bucket / my-first-blob ... / [1 fájl] [9.0 B / 9,0 B] A művelet több mint 1 objektummal fejeződött be / 9,0 B. Grovers-Mill: ~ egoebelbecker $ cat my-first-blob Bye now!

Ahogy az várható volt, a másolat opció az objektumot a parancssorban megadott fájlnévre másolja.

gsutil bármely objektumot átmásolhat a Google Cloud Storage szolgáltatásból a helyi fájlrendszerbe, feltéve, hogy elegendő hely van az tárolásához.

Takarítással fejezzük be:

$ gsutil rm gs: // baeldung-1-bucket / my-first-blob gs: // baeldung-1-bucket / my-first-blob ... / [1 objektum] A művelet 1 objektum felett befejeződött. $ gsutil ls gs: // baeldung-1-vödör / $

rm (del működik is) törli a megadott objektumot

5. Következtetés

Ebben a rövid útmutatóban hitelesítő adatokat készítettünk a Google Cloud Storage szolgáltatáshoz, és csatlakoztunk az infrastruktúrához. Hoztunk létre egy vödröt, adatokat írtunk, majd elolvastuk és módosítottuk. Mivel az API-val dolgozunk, mi is használtuk gsutil hogy megvizsgáljuk a felhő tárolását az adatok létrehozása és olvasása közben.

Megbeszéltük a vödrök használatát, az adatok hatékony írását és módosítását is.

A kódminták, mint mindig, a GitHubon találhatók.