, так что сейчас я пытаюсь написать скрипт python, который загружает несколько файлов из нашего хранилища Google , Я использую Windows, установил Google Cloud SDK и настроить все с GSUtil, так что я могу успешно загрузить файл в набрав после командной строки:Попытка загрузить данные из google storage bucket приводит к apiclient.errors.HttpError: <HttpError 403 ... возвращается «Запрещено»>
gsutil cp gs://pubsite_prod_rev_****/financial-stats/subscriptions/***.csv .
Это загружает соответствующий файл CSV в моем папка. Круто.
Теперь я попробовал то же самое в питоне, следуя эту документацию от Google: https://support.google.com/googleplay/android-developer/answer/6135870?hl=en (вы должны нажать на кнопку «Загрузить отчеты с помощью клиентской библиотеки учетной записи & службы», а затем на «пример Python», чтобы показать код Python)
Я использовал тот же самый код
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()
загрузить CSV-file.Unfortunetaley этот результат в следующем сообщении:
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">
Так что, очевидно, что что-то не так с URL-адресом, который он создает. Но я не знаю, что именно, поскольку это то же самое, что Google говорит нам делать на странице документа.
Надежда кто-то может помочь мне здесь:/
EDIT: Я изменил отслеживающий, как она изменилась с ошибкой 404 ошибки 403 сейчас ..