如果應用程式需要在執行期間讀取及寫入檔案,或是提供如電影、圖片或其他靜態內容等檔案,建議您使用 Cloud Storage 值區。
建立應用程式時,App Engine 會建立預設值區。這個值區提供的前 5 GB 儲存空間免費,並包含 Cloud Storage I/O 作業的免費配額。您可以建立其他 Cloud Storage 值區,但只有預設值區免費提供前 5 GB 的儲存空間。
將 Cloud Storage 與 App Engine 搭配使用
如要透過 App Engine 應用程式使用 Cloud Storage 值區:
在 App Engine 專案中查看現有值區的名稱。從 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
通訊協定讀取及寫入檔案。請參閱註冊及使用串流包裝函式的範例。
Python
在應用程式的
requirements.txt
檔案中新增google-cloud-storage
。進一步瞭解如何指定依附元件。使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱「儲存和提供靜態檔案」。
Ruby
在應用程式的
Gemfile
中新增google-cloud-storage
。進一步瞭解如何指定依附元件。使用 Google Cloud 用戶端程式庫,從您的值區上傳或下載資料。
如要瞭解如何提供靜態內容,請參閱「儲存和提供靜態檔案」。
使用預設值區
建立應用程式時,App Engine 會建立預設值區。這個值區提供的前 5 GB 儲存空間免費。預設值區也包含免費的 Cloud Storage I/O 作業配額。詳情請參閱定價、配額與限制一節。超過 5GB 限制的部分將須付費。
預設值區的名稱格式如下:
project-id.appspot.com
App Engine 也會在部署應用程序的新版本時,建立做為暫存空間的值區。這個值區名為 staging.project-id.appspot.com
,僅供 App Engine 使用。應用程式無法與此值區互動。
設定值區權限
與應用程式相關聯的服務帳戶需要具備讀取及寫入專案中值區的權限。如要瞭解所需權限,請參閱「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 價目表向您收費。