
[英]File Upload error using Google Client API to Google Cloud Storage
[英]download a file from google cloud storage with the api
我目前使用gsutil cp从我的存储桶下载文件,但这需要你安装一堆东西。
我只想使用简单的API请求下载它,例如:
http://storage.googleapis.com/mybucket/pulltest/pulltest.csv
这让我拒绝访问。 如何格式化auth参数来绕过这个?
如果您的对象可以由匿名用户下载,则可以下载与此完全相同的对象。
但是,手工操作OAuth很棘手。 您需要向Google呈现的内容是访问令牌。 auth标头如下所示:
# This has gotta be in an HTTPS request. No sending credentials over HTTP, please.
Authorization: Bearer something.abcdabcdabcdabcdabcdabcdabcdabcd
获取访问令牌需要进行OAuth交换,这有点棘手。 有一个在线游乐场可以为您处理: https : //developers.google.com/oauthplayground/
还有一些关于确切细节的文档,尽管您可能不想手动执行: https : //developers.google.com/identity/protocols/OAuth2
访问令牌只有几分钟。 它们并不意味着坚持下去。 如果你要做很多事情,你可能想要安装gcloud SDK,它有一个非常有用的“ print-access-token ”命令。
弄清楚如何做我想要的:
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.