本頁說明如何從本機檔案系統將物件上傳至 Cloud Storage 值區。上傳的物件包含您要儲存的資料,以及任何相關聯的中繼資料。如需概念總覽,包括如何根據檔案大小選擇最佳上傳方法,請參閱「上傳和下載」一文。
如需從記憶體上傳物件的操作說明,請參閱「從記憶體上傳物件」。
必要的角色
如要取得將物件上傳至 bucket 的權限,請要求管理員為您授予 bucket 的 Storage 物件使用者 (roles/storage.objectUser
) IAM 角色。這個預先定義的角色具備將物件上傳至值區所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.objects.create
storage.objects.delete
- 只有在上傳作業會覆寫現有物件時,才需要這項權限。
storage.objects.get
- 如果您打算使用 Google Cloud CLI 執行本頁面的工作,才需要這項權限。
storage.objects.list
- 如果您打算使用 Google Cloud CLI 執行本頁面的工作,才需要這項權限。如要使用 Trusted Cloud 控制台驗證已上傳的物件,也需要這項權限。
如果您打算使用 Trusted Cloud 控制台執行本頁面上的工作,還需要 storage.buckets.list
權限,但這項權限不包含在 Storage 物件使用者 (roles/storage.objectUser
) 角色中。如要取得這項權限,請要求管理員授予您專案的「儲存空間管理員」角色 (roles/storage.admin
)。
如要瞭解如何授予值區角色,請參閱「搭配值區使用 IAM」。
將物件上傳至 bucket
如要將物件上傳至 bucket,請完成下列步驟:
控制台
- 在 Trusted Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,找出要上傳物件的值區,然後按一下該值區的名稱。
在值區的「物件」分頁中,從下列兩個方式擇一操作:
將檔案從桌面或檔案管理員拖曳到 Trusted Cloud 控制台的主要窗格。
依序按一下「上傳」 >「上傳檔案」,在出現的對話方塊中選取要上傳的檔案,然後按一下「開啟」。
如要瞭解如何透過 Trusted Cloud 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 gcloud storage cp
指令:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME
其中:
OBJECT_LOCATION
是物件的本機路徑。例如:Desktop/dog.png
。DESTINATION_BUCKET_NAME
是您要向其上傳物件的值區名稱。例如:my-bucket
。
如果成功,回應會類似以下範例:
Completed files 1/1 | 164.3kiB/164.3kiB
用戶端程式庫
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
。
Terraform
您可以使用 Terraform 資源上傳物件。
必須指定 content
或 source
。
REST API
JSON API
JSON API 會區分媒體上傳 (要求中只包含物件資料) 和 JSON API 多部分上傳 (要求中包含物件資料和物件中繼資料)。
媒體上傳 (單一要求上傳,不含物件中繼資料)
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
物件要求呼叫 JSON API:curl -X POST --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.s3nsapis.fr/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"
其中:
OBJECT_LOCATION
是物件的本機路徑。例如:Desktop/dog.png
。OBJECT_CONTENT_TYPE
是物件的內容類型。例如:image/png
。BUCKET_NAME
是您要向其上傳物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是您要給予物件的網址編碼名稱。例如pets/dog.png
,網址編碼為pets%2Fdog.png
。
JSON API 多部分上傳 (單一要求上傳,包含物件中繼資料)
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的
multipart/related
檔案:--BOUNDARY_STRING Content-Type: application/json; charset=UTF-8 OBJECT_METADATA --BOUNDARY_STRING Content-Type: OBJECT_CONTENT_TYPE OBJECT_DATA --BOUNDARY_STRING--
其中:
BOUNDARY_STRING
是您定義的字串,用於識別多部分檔案的不同部分。例如:separator_string
。OBJECT_METADATA
是您要為檔案加入的中繼資料,採用 JSON 格式。這個區段至少應包含物件的name
屬性,例如{"name": "myObject"}
。OBJECT_CONTENT_TYPE
是物件的內容類型。例如:text/plain
。OBJECT_DATA
是物件的資料。
例如:
--separator_string Content-Type: application/json; charset=UTF-8 {"name":"my-document.txt"} --separator_string Content-Type: text/plain This is a text file. --separator_string--
使用
cURL
來透過POST
物件要求呼叫 JSON API:curl -X POST --data-binary @MULTIPART_FILE_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: multipart/related; boundary=BOUNDARY_STRING" \ -H "Content-Length: MULTIPART_FILE_SIZE" \ "https://storage.s3nsapis.fr/upload/storage/v1/b/BUCKET_NAME/o?uploadType=multipart"
其中:
MULTIPART_FILE_LOCATION
是您在步驟 2 建立的多部分檔案的本機路徑。例如:Desktop/my-upload.multipart
。BOUNDARY_STRING
是您在步驟 2 中定義的邊界字串。例如:my-boundary
。MULTIPART_FILE_SIZE
是您在步驟 2 建立的多部分檔案總大小 (以位元組為單位)。例如:2000000
。BUCKET_NAME
是您要向其上傳物件的值區名稱。例如:my-bucket
。
如果要求成功,伺服器會傳回 HTTP 200 OK
狀態碼,以及檔案的中繼資料。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過PUT
物件要求呼叫 XML API:curl -X PUT --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.s3nsapis.fr/BUCKET_NAME/OBJECT_NAME"
其中:
OBJECT_LOCATION
是物件的本機路徑。例如:Desktop/dog.png
。OBJECT_CONTENT_TYPE
是物件的內容類型。例如:image/png
。BUCKET_NAME
是您要向其上傳物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是您要給予物件的網址編碼名稱。例如pets/dog.png
,網址編碼為pets%2Fdog.png
。
您可以在要求標頭中設定其他物件中繼資料,與上一個範例設定 Content-Type
的方式相同。使用 XML API 時,只能在寫入物件時設定中繼資料,例如上傳、複製或取代物件時。詳情請參閱編輯物件中繼資料。
後續步驟
- 瞭解物件命名規定。
- 瞭解如何使用資料夾整理物件。
- 從 Compute Engine 執行個體傳輸物件。
- 控制可以存取您物件和值區的對象。
- 查看物件中繼資料,包括物件的網址。