所以现在我正在尝试编写一个python脚本,从我们的谷歌存储加载一些文件。我正在使用Windows,已安装Google Cloud SDK并使用gsutil设置所有内容,因此我可以在命令行键入以下内容时成功加载文件:
gsutil cp gs://pubsite_prod_rev_****/financial-stats/subscriptions/***.csv .
这会将正确的csv文件加载到我的文件夹中。凉。
现在我在python中尝试了相同的操作,遵循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文件.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">
很明显,它构建的网址存在问题。但我不知道究竟是什么,因为google告诉我们在doc页面上做同样的事情。
希望有人可以帮助我:/
编辑:我更改了回溯,因为它现在从错误404更改为错误403。
答案 0 :(得分:0)
好吧,所以它不起作用的原因很简单。 您必须启用访问权限并添加管理员权限或更少(但我没有尝试其他可能性)在谷歌开发者控制台内通过设置 - &gt; API Acess和selct您正在使用的服务帐户。
答案 1 :(得分:0)
这意味着您现在有权从
下载报告Google Play游戏机 - &gt;下载报告 - &gt;财务(或财务报告相关的事情)。
您可以通过gsutil
下载您尝试下载的相同文件。
获得从Google Play控制台下载报告的权限后,您就可以使用gsutil
或以编程方式下载报告