如果應用程式需要在執行階段期間讀取及寫入檔案,或是提供如影片、圖片或其他靜態內容等檔案,建議您使用 Cloud Storage 值區。
建立應用程式時,App Engine 會建立預設值區。這個值區提供的前 5 GB 儲存空間免費,並包含 Cloud Storage I/O 作業的免費配額。您可以建立其他 Cloud Storage 值區,但只有預設值區免費提供前 5 GB 的儲存空間。
將 Cloud Storage 與 App Engine 搭配使用
如要透過 App Engine 應用程式使用 Cloud Storage 值區:
在 App Engine 專案中查看現有 bucket 的名稱。從 Cloud Storage 上傳或下載資料時,要指定這些名稱。
建議您將 Cloud Storage 值區的名稱儲存在應用程式的環境變數中,而不是以硬式編碼的方式將這些名稱寫入應用程式的程式碼中。
在應用程式中,透過下列方式宣告 Cloud Storage 為依附元件:
Go
使用
go get cloud.google.com/go/storage指令。您也可以選擇在應用程式的go.mod檔案中宣告依附元件。進一步瞭解如何指定依附元件。使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱儲存和提供靜態檔案的相關說明。
Java
使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱儲存和提供靜態檔案的相關說明。
Node.js
在
app.yaml中,將專案 ID 新增至GOOGLE_CLOUD_PROJECT環境值。然後將GCLOUD_STORAGE_BUCKET環境值設為您先前建立的 Cloud Storage 值區名稱。在應用程式的
package.json檔案中新增@google-cloud/storage。進一步瞭解如何指定依附元件。使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱儲存和提供靜態檔案的相關說明。
如需在本機執行及測試的操作說明,請參閱
README.md檔案。PHP
將
google/cloud-storage新增至應用程式的composer.json檔案,並從應用程式的目錄執行composer install。進一步瞭解如何指定依附元件。將
Google\Cloud\Storage\StorageClient註冊為應用程式的串流包裝函式。然後使用gs通訊協定讀取及寫入檔案。請參閱註冊及使用串流包裝函式的範例。
或者,您也可以直接使用 Google Cloud 用戶端程式庫。
Python
在應用程式的
requirements.txt檔案中新增google-cloud-storage。進一步瞭解如何指定依附元件。使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱儲存和提供靜態檔案的相關說明。
Ruby
在應用程式的
Gemfile中新增google-cloud-storage。進一步瞭解如何指定依附元件。使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱儲存和提供靜態檔案的相關說明。
使用預設值區
建立應用程式時,App Engine 會建立預設值區。這個值區提供的前 5 GB 儲存空間免費。預設值區也包含免費的 Cloud Storage I/O 作業配額。詳情請參閱定價、配額與限制一節。超過 5 GB 限制的部分將須付費。
預設值區的名稱格式如下:
project-id.appspot.com
App Engine 也會在部署應用程式的新版本時,建立做為暫存空間的值區。這個值區名為 staging.project-id.appspot.com,僅供 App Engine 使用。應用程式無法與此值區互動。
設定 bucket 權限
與您應用程式相關聯的服務帳戶必須具備讀取和寫入專案中值區的權限。如要瞭解所需權限,請參閱「Cloud Storage 的 IAM 角色」。
通常與應用程式相關聯的服務帳戶是預設的 App Engine 服務帳戶。
視機構政策設定而定,系統可能會自動將專案的編輯者角色授予預設服務帳戶。強烈建議您
強制執行 iam.automaticIamGrantsForDefaultServiceAccounts 機構政策限制,停用自動授予角色功能。如果您是在 2024 年 5 月 3 日後建立機構,系統預設會強制執行這項限制。
停用自動角色授予功能後,您必須決定要將哪些角色授予預設服務帳戶,然後自行授予這些角色。
如果預設服務帳戶已具備「編輯者」角色,建議您將「編輯者」角色替換為權限較少的角色。如要安全地修改服務帳戶的角色,請使用 政策模擬器查看變更的影響,然後授予及撤銷適當的角色。
如要進一步瞭解如何允許其他使用者、應用程式或專案存取值區及其內容,請參閱設定值區權限。
搭配本機開發伺服器使用 Cloud Storage
App Engine 本機開發伺服器不會模擬 Cloud Storage,因此所有 Cloud Storage 要求都必須透過網際網路傳送至實際的 Cloud Storage 值區。
定價、配額與限制
Cloud Storage 用戶端程式庫對於 Cloud Storage 的呼叫沒有相關的頻寬費用,但會產生作業費用。 此外,呼叫會計入您的網址擷取配額用量,因為程式庫會使用網址擷取服務與 Cloud Storage 互動。
請注意,Cloud Storage 屬付費使用服務;系統會根據 Cloud Storage 價目表向您收費。