本頁面說明如何將 Cloud Storage bucket 中的物件下載至永久儲存空間。您也可以以互動方式讀取物件,或將物件讀取至記憶體。
必要的角色
如要取得下載物件所需的權限,請要求管理員授予您 bucket 的 Storage 物件檢視者 (roles/storage.objectViewer) 角色。如果您打算使用Cloud de Confiance 控制台,請要求管理員授予您 bucket 的 Storage 管理員 (roles/storage.admin) 角色。
這些角色具備下載物件所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.list- 只有在使用 Cloud de Confiance 控制台執行本頁工作時,才需要這項權限。
storage.objects.getstorage.objects.list- 只有使用 Cloud de Confiance 控制台執行這個頁面上的工作時,才需要這項權限。
如需如何授予 bucket 角色的操作說明,請參閱「在 bucket 上設定及管理 IAM 政策」。
從 bucket 下載物件
如要從 bucket 下載物件,請完成下列操作說明:
控制台
- 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要下載物件的 bucket 名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
前往該物件 (可能位於資料夾中)。
按一下與該物件相關聯的「下載」圖示。
物件的下載位置取決於瀏覽器設定。
如要瞭解如何在 Cloud de Confiance 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」。
指令列
使用 gcloud storage cp 指令:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION
其中:
BUCKET_NAME是 bucket 名稱,內含您要下載的物件。例如: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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Go
詳情請參閱 Cloud Storage Go API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
詳情請參閱 Cloud Storage Java API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會下載個別物件:
以下範例會使用多個程序下載多個物件:
下列範例會使用多個程序,下載具有共同前置字串的所有物件:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會下載個別物件:
以下範例會使用多個程序下載多個物件:
下列範例會使用多個程序,下載具有共同前置字串的所有物件:
PHP
詳情請參閱 Cloud Storage PHP API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
詳情請參閱 Cloud Storage Python API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會下載個別物件:
下列範例使用多個程序下載多個物件:
下列範例會使用多個程序,下載 bucket 中的所有物件:
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Rust
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 JSON API,並發出GET物件要求:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
SAVE_TO_LOCATION是要儲存物件的位置路徑。例如:Desktop/dog.png。BUCKET_NAME是包含您要下載物件的 bucket 名稱。例如:my-bucket。OBJECT_NAME是您要下載的物件名稱,以網址編碼格式表示。例如pets/dog.png,網址編碼為pets%2Fdog.png。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 XML API,並傳送GETObject 要求:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.s3nsapis.fr/BUCKET_NAME/OBJECT_NAME"
其中:
SAVE_TO_LOCATION是要儲存物件的位置路徑。例如:Desktop/dog.png。BUCKET_NAME是包含您要下載物件的 bucket 名稱。例如:my-bucket。OBJECT_NAME是您要下載的物件名稱,以網址編碼格式表示。例如pets/dog.png,網址編碼為pets%2Fdog.png。
如要更有效率地下載 bucket 或子目錄中的所有物件,請使用 gcloud storage cp 指令或用戶端程式庫:
gcloud storage cp --recursive gs://BUCKET_NAME/FOLDER_NAME .
下載物件的一部分
如果下載作業中斷,您可以只要求物件的剩餘部分,從中斷處繼續下載。請按照下列操作說明下載物件的一部分。
控制台
Cloud de Confiance 控制台不支援下載物件的部分內容。請改用 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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
C#
詳情請參閱 Cloud Storage C# API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Go
詳情請參閱 Cloud Storage Go API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
詳情請參閱 Cloud Storage Java API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
詳情請參閱 Cloud Storage Python API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Rust
REST API
JSON API
在要求中使用 Range 標頭,即可下載部分物件。
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 JSON API,並傳送GET物件要求:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
FIRST_BYTE是要下載的位元組範圍中的第一個位元組。例如:1000。LAST_BYTE是要下載的位元組範圍中的最後一個位元組。例如:1999。SAVE_TO_LOCATION是要儲存物件的位置路徑。例如:Desktop/dog.png。BUCKET_NAME是包含您要下載物件的 bucket 名稱。例如:my-bucket。OBJECT_NAME是您要下載的物件名稱,以網址編碼格式表示。例如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.s3nsapis.fr/BUCKET_NAME/OBJECT_NAME"
其中:
FIRST_BYTE是要下載的位元組範圍中的第一個位元組。例如:1000。LAST_BYTE是要下載的位元組範圍中的最後一個位元組。例如:1999。SAVE_TO_LOCATION是要儲存物件的位置路徑。例如:$HOME/Desktop/dog.png。BUCKET_NAME是 bucket 名稱,內含您要下載的物件。例如:my-bucket。OBJECT_NAME是您要下載的物件名稱,以網址編碼格式表示。例如pets/dog.png,網址編碼為pets%2Fdog.png。
後續步驟
- 進一步瞭解物件讀取和下載。
- 將物件傳輸至 Compute Engine 執行個體。
- 瞭解如何向要求者收取 Cloud Storage 存取費用。
- 瞭解 Cloud Storage 如何以未壓縮狀態提供 gzip 檔案。