簡體   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