本頁說明如何從 Cloud Storage 的值區下載物件到永久儲存空間。您也可以將物件下載到記憶體。
必要的角色
如要取得下載物件的必要權限,請要求管理員授予您 bucket 的「Storage 物件檢視者」roles/storage.objectViewer
角色。如果您打算使用控制台,請要求管理員授予您值區的「儲存空間管理員」Google Cloud (roles/storage.admin
) 角色。
這些角色具備下載物件所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.buckets.list
- 只有使用 Google Cloud 控制台執行本頁面上的工作時,才需要這項權限。
storage.objects.get
storage.objects.list
- 只有使用 Google Cloud 控制台執行本頁面上的工作時,才需要這項權限。
如需如何授予值區角色的操作說明,請參閱「搭配值區使用 IAM」。
從 bucket 下載物件
如要從 bucket 下載物件,請完成下列操作說明:
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,點選含有要下載物件的值區名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
前往物件 (可能位於資料夾中)。
按一下與物件相關的「下載」圖示。
物件的下載位置取決於瀏覽器設定。
如要瞭解如何透過 Google Cloud 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION
其中:
BUCKET_NAME
是包含要下載物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是您要下載的物件名稱。例如:pets/dog.png
。SAVE_TO_LOCATION
是您儲存物件的本機路徑。例如:Desktop/Images
。
如果成功,回應會類似以下範例:
Completed files 1/1 | 164.3kiB/164.3kiB
如果下載作業在完成前中斷,請執行相同的 cp
指令,從中斷處繼續下載。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會下載個別物件:
以下範例使用多個程序下載多個物件:
下列範例會使用多個程序,下載具有相同前置字串的所有物件:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會下載個別物件:
以下範例使用多個程序下載多個物件:
下列範例會使用多個程序,下載具有相同前置字串的所有物件:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
以下範例會下載個別物件:
以下範例使用多個程序下載多個物件:
下列範例會使用多個程序,下載值區中的所有物件:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET
物件要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
SAVE_TO_LOCATION
是要儲存物件的位置路徑。例如:Desktop/dog.png
。BUCKET_NAME
是包含要下載物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是要下載物件的 URL 編碼名稱。例如pets/dog.png
,網址編碼為pets%2Fdog.png
。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET
物件要求呼叫 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
SAVE_TO_LOCATION
是要儲存物件的位置路徑。例如:Desktop/dog.png
。BUCKET_NAME
是包含要下載物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是要下載物件的 URL 編碼名稱。例如pets/dog.png
,網址編碼為pets%2Fdog.png
。
如要更有效率地下載值區或子目錄中的所有物件,請使用 gcloud storage cp
指令或用戶端程式庫:
gcloud storage cp --recursive gs://BUCKET_NAME/FOLDER_NAME .
下載物件的一部分
如果下載作業中斷,您可以只要求物件的剩餘部分,從中斷處繼續下載。如要下載物件的部分內容,請完成下列操作說明。
控制台
Google Cloud 控制台不支援下載物件的部分內容。請改用 gcloud CLI。
指令列
Google Cloud CLI 會自動嘗試繼續下載中斷的作業,但串流下載除外。如果下載作業中斷,部分下載的暫時檔案會顯示在目標階層中。再次執行相同的 cp
指令,即可從上次中斷的地方繼續下載。
下載完成後,系統會刪除暫存檔案,並以下載的內容取代。暫存檔案會儲存在可設定的位置,預設位於使用者主目錄的 .config/gcloud/surface_data/storage/tracker_files
下。您可以執行 gcloud config get storage/tracker_files_directory
,變更或查看暫存檔案的儲存位置。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
在要求中使用 Range
標頭,下載物件的一部分。
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET
物件要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
FIRST_BYTE
是您要下載的位元組範圍中的第一個位元組。例如:1000
。LAST_BYTE
是您要下載的位元組範圍中的最後一個位元組。例如:1999
。SAVE_TO_LOCATION
是要儲存物件的位置路徑。例如:Desktop/dog.png
。BUCKET_NAME
是包含要下載物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是要下載物件的 URL 編碼名稱。例如pets/dog.png
,網址編碼為pets%2Fdog.png
。
XML API
在要求中使用 Range
標頭,下載物件的一部分。
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET
物件要求呼叫 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
FIRST_BYTE
是您要下載的位元組範圍中的第一個位元組。例如:1000
。LAST_BYTE
是您要下載的位元組範圍中的最後一個位元組。例如:1999
。SAVE_TO_LOCATION
是要儲存物件的位置路徑。例如:$HOME/Desktop/dog.png
。BUCKET_NAME
是包含要下載物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是要下載物件的 URL 編碼名稱。例如pets/dog.png
,網址編碼為pets%2Fdog.png
。
後續步驟
- 請參閱上傳和下載的概念總覽,包括進階下載策略。
- 從雲端供應商或其他線上來源 (例如網址清單) 轉移資料。
- 將物件傳輸至 Compute Engine 執行個體。
- 瞭解如何 向要求者收取 Cloud Storage 存取費用。
- 瞭解 Cloud Storage 如何提供解壓縮的 gzip 壓縮檔。
歡迎試用
如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud Storage 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
免費試用 Cloud Storage