
[英]How can i download the files inside a folder on google cloud platform using python?
[英]how can i download my data from google-cloud-platform using python?
我在谷歌云平台上有我的数据,我希望能够在本地下载它,这是我第一次尝试这样做,最终我会将下载的数据与我的 python 代码一起使用。
我已经检查了文档,例如https://cloud.google.com/genomics/downloading-credentials-for-api-access和https://cloud.google.com/storage/docs/cloud-console我已成功获得我的第一个链接的 Json 文件,第二个是你正在挣扎的地方,我使用的是 python 3.5 并假设我的 json 文件名是data.json
我添加了以下代码:
os.environ["file"] = "data.json"
urllib.request.urlopen('https://storage.googleapis.com/[bucket_name]/[filename]')
首先,我什至不知道我应该在环境附近调用什么值,所以我只是将它称为文件,不知道我应该如何填充它并且我在第二行拒绝访问,显然这不是如何下载我的文件,因为没有目标本地存储库或该命令中的任何内容,我们将不胜感激。
编辑:
from google.cloud.storage import Blob
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "credentials/client_secret.json"
storage_client = storage.Client.from_service_account_json('service_account.json')
client = storage.Client(project='my-project')
bucket = client.get_bucket('my-bucket')
blob = Blob('path/to/my-object', bucket)
download_to_filename('local/path/to/my-file')
我得到了关于storage
和download_to_filename
未解析参考,我应该用credentials/client_secret.json
替换service_account.json
。 另外,我尝试打印os.environ["GOOGLE_APPLICATION_CREDENTIALS"]['installed']
就像我对任何 Json 所做的一样,但它只是说我应该给出数字,这意味着它仅将输入路径作为常规文本读取。
您应该使用惯用的 Google Cloud 库在 GCS 中运行操作。
有了这个例子,并且知道客户端库将获得应用程序默认凭据,首先我们必须设置应用程序默认凭据
gcloud auth application-default login
===编辑===
那是旧的方式。 现在您应该使用此链接中的说明。
这意味着从控制台下载服务帐户密钥文件,并将环境变量GOOGLE_APPLICATION_CREDENTIALS
设置为下载的 JSON 的路径。
此外,请确保此服务帐户对存储桶的项目具有适当的权限。
或者您可以使用显式凭据创建客户端。 您同样需要下载密钥文件,但在创建客户端时,请使用:
storage_client = storage.Client.from_service_account_json('service_account.json')
==========
然后,按照示例代码:
from google.cloud import storage
client = storage.Client(project='project-id')
bucket = client.get_bucket('bucket-id')
blob = storage.Blob('bucket/file/path', bucket)
blob.download_to_filename('/path/to/local/save')
或者,如果这是一次性下载,只需安装SDK并使用gsutil
下载:
gsutil cp gs://bucket/file .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.