Google Cloud Storage Gestionarea fișierelor și a obiectelor

În prima parte a acestei serii de tutorial în două părți, am avut o prezentare generală a modului în care se folosesc buchetele în Google Cloud Storage pentru a organiza fișiere. Am văzut cum să gestionăm buchetele din Google Cloud Storage din Google Cloud Console. Acesta a fost urmat de un script Python în care aceste operații au fost efectuate programat.

În această parte, voi demonstra modul de gestionare a obiectelor, adică a fișierelor și a folderelor din interiorul GCS. Structura acestui tutorial va fi similară cu cea a precedentului. În primul rând, voi demonstra cum să efectuați operații de bază legate de gestionarea fișierelor utilizând Google Cloud Console. Acesta va fi urmat de un script Python pentru a face aceleași operații programat.

Așa cum numirea în GCS a unei găleți a avut unele linii directoare și constrângeri, denumirea obiectului urmează un set de linii directoare. Numele de nume ar trebui să conțină caractere unicode valide și nu trebuie să conțină caractere retur sau linii de alimentare. Unele recomandări nu includ caractere precum "#", "[", "]", "*", "?" sau ilegal de caractere de control XML, deoarece acestea pot fi interpretate în mod greșit și pot duce la ambiguitate.

De asemenea, numele de obiecte din GCS urmează un spațiu de nume plat. Aceasta înseamnă fizic că nu există directoare și subdirectoare pe GCS. De exemplu, dacă creați un fișier cu nume /tutsplus/tutorials/gcs.pdf, va apărea ca și cum gcs.pdf se află într-un director numit Tutoriale care la rândul său este un subdirector tutsplus. Dar, potrivit GCS, obiectul se află pur și simplu într-o găleată cu numele /tutsplus/tutorials/gcs.pdf.

Să ne uităm la modul de gestionare a obiectelor folosind Google Cloud Console și apoi să navigăm pe scriptul Python pentru a face același lucru programabil.

Utilizând Google Cloud Console

Voi continua de unde am plecat în ultimul tutorial. Să începem prin crearea unui dosar.


Pentru a crea un folder nou, faceți clic pe Creeaza dosar butonul evidențiat mai sus. Creați un dosar completând numele dorit, după cum se arată mai jos. Numele trebuie să urmeze convențiile de denumire a obiectelor.

Acum, să încărcăm un fișier în folderul nou creat.

După crearea, browserul GCS va afișa obiectele nou create. Obiectele pot fi șterse selectându-le din listă și făcând clic pe butonul de ștergere.


Dacă faceți clic pe butonul de reîmprospătare, populați interfața cu modificările aduse listei obiectelor fără a reîmprospăta întreaga pagină.

Administrarea obiectelor programabil

În prima parte, am văzut cum să creăm o instanță Compute Engine. O să folosesc același lucru și să construiesc scriptul Python din ultima parte.

Scrierea scriptului Python

Nu există pași de instalare suplimentari care trebuie urmați pentru acest tutorial. Consultați prima parte pentru mai multe detalii despre mediul de instalare sau dezvoltare.

gcs_objects.py

sys import de la pprint import pprint de la googleapiclient import de descoperire de la googleapiclient import http din import oauth2client.client GoogleCredentials def create_service (): credentials = GoogleCredentials.get_application_default () retur discovery.build ('storage', 'v1', credentials = list_objects (bucket): service = create_service () # Creați o cerere pentru objects.list pentru a prelua o listă de obiecte. fields_to_return = \ 'nextPageToken, elemente (nume, dimensiune, continutTip, metadate (mykey))' req = service.objects pentru a lista într-o singură cerere, list_next () va gestiona automat paginarea cu pageToken. în timp ce req: resp = req.execute () all_objects.extend (resp.get ('items', [])) req = service.objects ): service = create_service () # Acesta este corpul solicitării așa cum este specificat: # http://g.co/cloud/storage/docs/json_api/v1/objects/insert#request body = 'name': filename, cu deschise (numele fișierului, 'rb') ca f: req = service.objects () inserați (bucket = bucket, body = body, # (f, 'application / octet-stream')) resp = req.execute () pprint (resp) def delete_object (bucket, nume fișier): service = create_service () res = service.objects () șterge (bucket = bucket, object = nume fișier) .execute () pprint (res) def print_help  Comanda poate fi: help: Imprima aceasta lista de ajutor: Listeaza toate obiectele din creatia specificata create: Incarcati fisierul furnizat intr-o cura de gunoi specificata: Stergeti numele fisierului furnizat din "" daca __name__ == "__main__" 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_objects(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'create': if len(sys.argv) == 4: create_object(sys.argv[2], sys.argv[3]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'delete': if len(sys.argv) == 4: delete_object(sys.argv[2], sys.argv[3]) sys.exit() else: print_help() sys.exit() 

Scriptul Python de mai sus demonstrează operațiile majore care pot fi efectuate pe obiecte. Acestea includ:

  • crearea unui obiect nou într-o găleată
  • listarea tuturor obiectelor într-o găleată
  • ștergerea unui obiect specific

Să vedem cum arată fiecare dintre operațiile de mai sus când rulează scriptul.

$ python gcs_objects.py Utilizare: python gcs_objects.py  Comanda poate fi: help: Imprimă această listă de ajutor: Listează toate obiectele din crearea bușetului specificat: Încărcați fișierul furnizat în ștergerea specificată a bucketului: Ștergeți numele fișierului furnizat din bucket $ python gcs_objects.py lista tutsplus-demo-test [u 'contentType': u'application / x-www-form-urlencoded; charset = UTF-8 ', u'name': u'tutsplus / 'u'size': u'0 ', u'contentType' : u'image / png ', resp = req.execute () u'name': u'tutsplus / Screen Shot 2016-10-17 la 1.03.16 PM.png ', u'size': u'36680 ' ] $ python gcs_objects.py creați tutsplus-demo-test gcs_buckets.py u'bucket ': u'tutsplus-demo-test', u'contentType ': u'application / octet-stream', u'crc32c ': 'XIEyEw ==', u'etag ': u'CJCckonZ4c8CEAE =', u'generation ': u'1476702385770000', u'id ': u'tutsplus-demo-test / gcs_buckets.py / 1476702385770000', u'kind ': u'storage # object', u'md5Hash ': u' + bd6Ula + mG4bRXReSnvFew == ', u'mediaLink': u'https: //www.googleapis.com/download/storage/v1/b/tutsplus -demo-test / o / gcs_buckets.py? generație = 147670238577000 0 & alt = media ', u'metag eneratie ': u'1', u'name ': u'gcs_buckets.py', u'selfLink ': u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo-test/o /gcs_buckets.py ', u'size': u'2226 ', u'storageClass': u'STANDARD ', u'timeCreated': u'2016-10-17T11: 06: 25.753Z ', u'updated': u'2016-10-17T11: 06: 25.753Z ' $ python gcs_objects.py lista tutsplus-demo-test [u'contentType': u'application / octet-stream ', u'name': u'gcs_buckets. py ', u'size': u'2226 ', u'contentType': u'application / x-www-form-urlencoded; charset = UTF-8 ', u'name': u'tutsplus / u'ize ': u'0', u'contentType ': u'image / png', u'name ': u'tutsplus / Screen Shot 2016-10-17 la 1.03.16 PM.png', u 'dimensiune': u'36680 '] $ python gcs_objects.py șterge tutsplus-demo-test gcs_buckets.py "$ python gcs_objects.py lista tutsplus-demo-test [u'contentType': u'application / x-www -form-urlcoded; charset = UTF-8 ', u'name': u'tutsplus / ', u'size': u'0 ', u'contentType': u'image / png ' ': u'tutsplus / Screen Shot 2016-10-17 la 1.03.16 PM.png', u'size ': u'36680']

Concluzie

În această serie de tutorial, am văzut cum lucrează Google Cloud Storage dintr-o vedere de pasăre, urmată de o analiză aprofundată a găleților și obiectelor. Apoi am văzut cum să efectuăm operațiuni majore legate de cupă și obiect prin Google Cloud Console. 

Apoi am efectuat același lucru folosind scripturile Python. Există mai multe lucruri care pot fi făcute cu Google Cloud Storage, dar este lăsat pentru dvs. să explorați.

Cod