Google api 使用api从google云存储下载文件

Google api 使用api从google云存储下载文件,google-api,google-cloud-storage,Google Api,Google Cloud Storage,我目前使用gsutil cp从我的bucket下载文件,但这需要安装一堆东西 我只想使用一个简单的API请求下载它,如: http://storage.googleapis.com/mybucket/pulltest/pulltest.csv 这使我无法访问。如何格式化auth参数以绕过此问题 如果您的对象可以由匿名用户下载,您可以下载与此完全相同的对象 不过,手工操作OAuth是很棘手的。你需要向谷歌展示的是一个访问令牌。auth标头如下所示: # This has gotta be in

我目前使用gsutil cp从我的bucket下载文件,但这需要安装一堆东西

我只想使用一个简单的API请求下载它,如:

http://storage.googleapis.com/mybucket/pulltest/pulltest.csv

这使我无法访问。如何格式化auth参数以绕过此问题

如果您的对象可以由匿名用户下载,您可以下载与此完全相同的对象

不过,手工操作OAuth是很棘手的。你需要向谷歌展示的是一个访问令牌。auth标头如下所示:

# This has gotta be in an HTTPS request. No sending credentials over HTTP, please.
Authorization: Bearer something.abcdabcdabcdabcdabcdabcdabcdabcd
获取访问令牌需要OAuth交换,这有点棘手。有一个在线游乐场可以为您提供:

虽然您可能不想手工操作,但也有大量关于具体细节的文档:


访问令牌仅在几分钟内有效。它们不应该被持久化。如果您打算经常这样做,您可能需要安装gcloud SDK,它有一个非常有用的“”命令。

了解了如何实现我想要的:

from google.cloud.storage.client import Client
from google.cloud.storage.bucket import Bucket
from google.cloud.storage.blob import Blob
from google.oauth2.service_account import Credentials

credentials = Credentials.from_service_account_file('key.json')
client = Client(project='project', credentials=credentials)
bucket = Bucket(client=client, name='bucket')
blob = Blob(name='pulltest/pulltest.csv', bucket=bucket)

print blob.exists()

有没有一种不用终端就可以进行gcloud身份验证登录的方法?i、 由于我想使用AmazonLambdaSure部署我的脚本,所以我通过python实现了e。您想创建一个代表您的应用程序的服务帐户。将脚本与该服务帐户的私钥一起部署,并将其用于身份验证。