![](/img/trans.png)
[英]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.