google-cloud-storageAan de slag met Google-cloud-opslag


Opmerkingen

Google Cloud Storage is een service voor duurzame en in hoge mate beschikbare opslag van objecten van elke grootte. U kunt Google Cloud Storage gebruiken voor een aantal scenario's, waaronder het aanbieden van website-inhoud, het opslaan van gegevens voor archivering en noodherstel of het distribueren van grote gegevensobjecten naar gebruikers via directe download.

De officiële documentatie van Google voor GCS (Google Cloud Storage) is te vinden op https://cloud.google.com/storage/docs/ .

HTTP-download (openbare objecten)

Als u een object uit GCS wilt downloaden dat openbaar zichtbaar is, is de eenvoudigste manier om een webbrowser of een opdrachtregelprogramma te gebruiken om een URL met dit patroon op te halen: https://storage.googleapis.com/bucketName/objectName .

Voorbeeld: https://storage.googleapis.com/pub/someOfTheTeam.jpg

Initiële setup

Google houdt hier documentatie bij om aan de slag te gaan: https://cloud.google.com/storage/docs/quickstart-console

Klaar om GCS te gebruiken:

  1. Maak een Google Cloud-project , als u dat nog niet heeft.
  2. Schakel facturering in voor uw project zodat emmers kunnen worden gemaakt.
  3. (Optioneel) Installeer de Google Cloud SDK , inclusief gsutil, het opdrachtregelprogramma van GCS. Als alternatief kunt u gsutil rechtstreeks vanuit de Google Cloud UI gebruiken met behulp van de Google Cloud Shell .

Bestanden uploaden met Python

Benodigde bibliotheken importeren:

from gcloud import storage
 

Definieer benodigde variabelen:

Client : bundelt de configuratie die nodig is voor API-aanvragen

client = storage.Client()
 

Optionele params voor Client() :

  • project : het project waarvoor de klant optreedt. Wordt doorgegeven bij het maken van een onderwerp. Indien niet geslaagd, valt terug naar de standaard afgeleid uit de omgeving.
  • referenties : OAuth2 Referenties gebruikt voor de verbinding. Indien niet geslaagd, valt terug naar de standaard afgeleid uit de omgeving.
  • http : HTTP-object om verzoeken in te dienen. Als deze niet wordt doorgegeven, wordt een http object gemaakt dat is gebonden aan de referenties voor het huidige object.

Bucket : selecteert de bucket die in het project is gemaakt via de Google Cloud Console

bucket = client.get_bucket('<your-bucket-name>')
 

Raadpleeg Storage Client voor meer informatie over de Client functies

Blob : bestandsnaam die wordt opgeslagen.

blob = bucket.blob('my-test-file.txt')
 

U kunt ook mappen als volgt definiëren:

filename = "%s/%s" % (folder, filename)
blob = bucket.blob(filename)
 

Er zijn verschillende methoden om een bestand te uploaden. U kunt een bestand verwachten in de payload van een POST of PUT verzoek, of dit lokaal op uw bestandssysteem hebben. U kunt zelfs tekst rechtstreeks naar een tekstbestand verzenden.

# Uploading string of text
blob.upload_from_string('this is test content!')

# Uploading from a local file using open()
with open('photo.jpg', 'rb') as photo:
    blob.upload_from_file(photo)

# Uploading from local file without open()
blob.upload_from_filename('photo.jpg')
 

Raadpleeg Blob / Objects voor meer informatie over de uploadfuncties

Als u wilt dat uw blob openbaar is, kunt u de privacy van het bestand openbaar maken:

blob.make_public()
url = blob.public_url