本頁說明如何從 Cloud Storage 的值區下載物件到永久儲存空間。您也可以將物件下載到記憶體。
必要的角色
如要取得下載物件的必要權限,請要求管理員授予您 bucket 的「Storage 物件檢視者」roles/storage.objectViewer
角色。如果您打算使用控制台,請要求管理員授予您值區的「儲存空間管理員」Trusted Cloud (roles/storage.admin
) 角色。
這些角色具備下載物件所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.buckets.list
- 只有使用 Trusted Cloud 控制台執行本頁面上的工作時,才需要這項權限。
storage.objects.get
storage.objects.list
- 只有使用 Trusted Cloud 控制台執行本頁面上的工作時,才需要這項權限。
如需如何授予值區角色的操作說明,請參閱「搭配值區使用 IAM」。
從 bucket 下載物件
如要從 bucket 下載物件,請完成下列操作說明:
控制台
- 在 Trusted Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,點選含有要下載物件的值區名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
前往物件 (可能位於資料夾中)。
按一下與物件相關的「下載」圖示。
物件的下載位置取決於瀏覽器設定。
如要瞭解如何透過 Trusted 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,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 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
。
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.s3nsapis.fr/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.s3nsapis.fr/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 .
下載物件的一部分
如果下載作業中斷,您可以只要求物件的剩餘部分,從中斷處繼續下載。如要下載物件的部分內容,請完成下列操作說明。
控制台
Trusted 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,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 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
。
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.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
是包含要下載物件的值區名稱。例如: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.s3nsapis.fr/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 壓縮檔。