zurückgegeben, also versuche ich jetzt, ein Python-Skript zu schreiben, das ein paar Dateien aus unserem Google-Speicher lädt . Ich verwende Windows, haben die Google Cloud SDK installiert und alles eingerichtet mit gsutil, so kann ich erfolgreich eine Datei laden die nach der Kommandozeile in eingeben:Der Versuch, Daten aus dem Google Storage Bucket zu laden, führt zu einem apiclient.errors.HttpError: <HttpError 403 ... hat "Forbidden">
gsutil cp gs://pubsite_prod_rev_****/financial-stats/subscriptions/***.csv .
Dies lädt eine richtige CSV-Datei zu meiner Mappe. Cool.
Jetzt habe ich versucht, das gleiche in Python, im Anschluss an dieser Dokumentation von Google: https://support.google.com/googleplay/android-developer/answer/6135870?hl=en (Sie auf „Download Berichten mit einem Client-Bibliothek & Dienstkonto“ klicken und dann auf „Python Beispiel“ den Python-Code zu erhalten)
verwenden ich den exakt gleichen Code
import json
from httplib2 import Http
from oauth2client.client import SignedJwtAssertionCredentials
from apiclient.discovery import build
from urllib import quote
client_email = 'serviceAccountEmail'
json_file = 'pathToMyServiceAccountPrivateKey'
cloud_storage_bucket = 'pubsite_prod_rev_******'
report_to_download = 'financial-stats/subscriptions/fileName.csv'
print report_to_download
private_key = json.loads(open(json_file).read())['private_key']
credentials = SignedJwtAssertionCredentials(client_email, private_key, 'https://www.googleapis.com/auth/devstorage.read_only')
storage = build('storage', 'v1', http=credentials.authorize(Http()))
print storage.objects().get(bucket=cloud_storage_bucket, object=report_to_download).execute()
die cSV file.Unfortunetaley dieses Ergebnis in der folgenden Meldung zu laden:
Traceback (most recent call last):
File "C:/Office/Financial Reports/Python Reporter/Test.py", line 66, in <module>
print storage.objects().get(bucket=cloud_storage_bucket, object=report_to_download).execute()
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\bq\third_party\oauth2client\util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\bq\third_party\apiclient\http.py", line 724, in execute
raise HttpError(resp, content, uri=self.uri)
apiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/storage/v1/b/pubsite_prod_rev_17179175168453545219/o/financial-stats%2Fsubscriptions%2Fsubscriptions_de.kaasahealth.namagi_cody_monthly_sub_201701_device.csv?alt=json returned "Forbidden">
So offensichtlich ist etwas falsch mit der URL, die es erstellt. Aber ich weiß nicht genau, was genau das ist, was Google uns auf der Doc-Seite sagt.
Hoffnung kann mir hier jemand helfen:/
EDIT: Ich habe die Zurückverfolgungs geändert, wie es von Fehler 404 geändert 403 jetzt auf Fehler ..