我正在尝试从Google Play开发人员控制台下载CSV文件。在开发人员控制台中,在下载报告>统计信息下,我可以下载CSV文件,其中包含有关应用程序下载、安装和卸载的统计信息。
使用我在开发者控制台中获得的存储在Cloud Storage中的数据的存储桶的URI,我打开以下URL:https://console.cloud.google.com/storage/browser/pubsite_prod_7157330435810114607,其中显示文件。从那里,使用与开发者控制台中的开发者帐户相同的Gmail帐户登录,我可以逐个下载CSV文件。
但是,我想使用Python脚本下载它们,用matplotlib绘制数据:
import webbrowser
def download_file():
# Download URL for the CSV file
download_url = "https://storage.googleapis.com/pubsite_prod_7157330435810114607/stats/installs/installs_com.geology_quiz_and_guide.mineralogy_202301_app_version.csv"
# Opens the browser at Google's login URL
webbrowser.open('https://accounts.google.com/')
# Wait to allow time to log in manually
input("Press Enter after you have logged into Google...")
# Once logged in, attempt to download the file
webbrowser.open(download_url)
print("Downloading file...")
download_file()
字符串
由于缺少权限,脚本不允许我下载文件:
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object. Permission 'storage.objects.get' denied on resource (or it may not exist).</Details>
</Error>
型
如果我登录了,并且是与存储桶关联的帐户,为什么我无法下载文件?
是否有其他方法下载CSV文件?
2条答案
按热度按时间ogsagwnx1#
最好使用服务帐户和云存储python客户端从bucket下载文件。
首先,您将生成一个服务account.json文件,该文件将包含您的凭据,以便您可以使用Google Cloud API进行身份验证。
在你的google cloud控制台上,你可以转到
IAM and admin
>Service accounts
。你可以创建一个新的服务帐户或使用默认值,前提是它有访问项目存储桶的权限。为服务帐户创建一个新的密钥,并选择JSON
类型。将下载的json文件存储在一个方便的位置,也许就在你的脚本旁边。另外,pip安装库
google-cloud-storage
和任何依赖项。下面是一个示例代码,您可以使用它从存储桶中下载文件。
字符串
因此,如果我的bucket名称是
bucket1
,bucket中的blob是bucket1data
,并且我想保存到“\files\downloaded_blob”型
uxhixvfz2#
它可以用gsutil完成,并在bash终端(Linux)中执行命令:
字符串
这个脚本不需要认证,所以我认为文件是公开的。我不知道为什么在问题中发布的脚本中出现403错误。
编辑
安装gsutil时需要身份验证。阅读更多信息中的注解。