繁体   English   中英

如何使用 python 从 google-cloud-platform 下载我的数据?

[英]how can i download my data from google-cloud-platform using python?

我在谷歌云平台上有我的数据,我希望能够在本地下载它,这是我第一次尝试这样做,最终我会将下载的数据与我的 python 代码一起使用。

我已经检查了文档,例如https://cloud.google.com/genomics/downloading-credentials-for-api-accesshttps://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')

我得到了关于storagedownload_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM