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
- Ugrás a Google Cloud Platform Console-ra
- 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“
- Válassza a „új szolgáltatási fiók”A legördülő listából
- Adjon hozzá egy nevet, például:baeldung-cloud-storage”A fiók neve mezőbe.
- A „szerep”Válassza a Projekt elemet, majd az almenüben a Tulajdonos lehetőséget.
- 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:
- Telepítse a Cloud SDK-t a platformunkra vonatkozó utasítások alapján.
- 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.