REST Resource: sites.versions

資源:Version

Version 是設定與靜態檔案集合,可決定網站的顯示方式。

JSON 表示法
{
  "name": string,
  "status": enum (VersionStatus),
  "config": {
    object (ServingConfig)
  },
  "labels": {
    string: string,
    ...
  },
  "createTime": string,
  "createUser": {
    object (ActingUser)
  },
  "finalizeTime": string,
  "finalizeUser": {
    object (ActingUser)
  },
  "deleteTime": string,
  "deleteUser": {
    object (ActingUser)
  },
  "fileCount": string,
  "versionBytes": string
}
欄位
name

string

版本的完整資源名稱,格式如下:

sites/SITE_ID/versions/VERSION_ID

當您呼叫 versions.create 時,系統會在回應主體中提供這個名稱。

status

enum (VersionStatus)

版本的部署狀態。

如要成功部署,請呼叫 versions.create 建立新版本 (CREATED 狀態)、將所有需要的檔案上傳至該版本,然後更新FINALIZED 狀態。

請注意,如果您將版本維持在 CREATED 狀態超過 12 小時,系統就會自動將該版本標示為 ABANDONED

您也可以呼叫 versions.delete,將版本的狀態變更為 DELETED

config

object (ServingConfig)

網站行為的設定。這項設定位於 firebase.json 檔案中。

labels

map (key: string, value: string)

用於額外中繼資料和/或篩選的標籤。

包含 "key": value 組合清單的物件。範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

createTime

string (Timestamp format)

僅供輸出。建立版本的時間。

RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度不超過奈秒,最多 9 個小數位數。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

createUser

object (ActingUser)

僅供輸出。識別建立版本的使用者,

finalizeTime

string (Timestamp format)

僅供輸出。版本為 FINALIZED 的時間。

RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度不超過奈秒,最多 9 個小數位數。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

finalizeUser

object (ActingUser)

僅供輸出。用於識別FINALIZED版本的使用者。

deleteTime

string (Timestamp format)

僅供輸出。版本為 DELETED 的時間。

RFC3339 世界標準時間「Zulu」的時間戳記格式,解析度不超過奈秒,最多 9 個小數位數。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

deleteUser

object (ActingUser)

僅供輸出。用於識別DELETED版本的使用者。

fileCount

string (int64 format)

僅供輸出。與該版本相關的檔案總數。

這個值會在版本為 FINALIZED 後計算。

versionBytes

string (int64 format)

僅供輸出。版本的儲存位元組總數。

這個值會在版本為 FINALIZED 後計算。

版本狀態

在部署生命週期中,特定版本的目前已知狀態。

列舉
VERSION_STATUS_UNSPECIFIED 預設狀態:不得刻意使用
CREATED 版本已建立,目前正在新增內容。
FINALIZED 所有內容都已新增至該版本,您無法再變更此版本。
DELETED 已刪除這個版本。
ABANDONED 版本未在 12 小時內更新為 FINALIZED,並且已自動刪除。
EXPIRED 該版本超出網站設定的保留版本數量限制,因此版本的內容已排定刪除。
CLONING 您正在複製其他版本。系統仍在複製所有內容。

供應設定

這項設定是指在提供內容之前,應如何轉送並處理傳送至網站的要求。網址要求路徑會與設定中指定的網址模式進行比對,然後代管會根據特定的優先順序套用適用的設定。

,瞭解如何調查及移除這項存取權。
JSON 表示法
{
  "headers": [
    {
      object (Header)
    }
  ],
  "redirects": [
    {
      object (Redirect)
    }
  ],
  "rewrites": [
    {
      object (Rewrite)
    }
  ],
  "cleanUrls": boolean,
  "trailingSlashBehavior": enum (TrailingSlashBehavior),
  "i18n": {
    object (I18nConfig)
  }
}
欄位
headers[]

object (Header)

由物件組成的陣列,其中每個物件都會指定網址模式,如果與要求網址路徑相符,就會觸發「託管」來套用指定的自訂回應標頭。

redirects[]

object (Redirect)

物件陣列 (稱為「重新導向規則」),其中每個規則都會指定網址模式。如果與要求網址路徑相符,就會觸發「託管」以重新導向至指定目的地路徑做為回應。

rewrites[]

object (Rewrite)

物件陣列 (稱為重寫規則),其中每個規則都會指定網址模式;如果與要求網址路徑相符,則觸發「託管」並假設服務已取得指定的到達網頁網址。

cleanUrls

boolean

定義是否要捨棄上傳檔案的副檔名。

trailingSlashBehavior

enum (TrailingSlashBehavior)

定義如何處理網址路徑結尾的斜線。

i18n

object (I18nConfig)

選用設定。定義 i18n 重寫行為。

Header 會指定網址模式,如果與要求網址路徑相符,就會觸發「託管」來套用指定的自訂回應標頭。

JSON 表示法
{
  "headers": {
    string: string,
    ...
  },

  // Union field pattern can be only one of the following:
  "glob": string,
  "regex": string
  // End of list of possible types for union field pattern.
}
欄位
headers

map (key: string, value: string)

執行個體類型,要新增至回應的其他標頭。

包含 "key": value 組合清單的物件。範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

聯集欄位 pattern
必要。用於比對要求網址路徑的字串網址模式,判斷是否要套用這個自訂回應標頭。可以是 Bash 樣式 glob 或 RE2 規則運算式。

pattern 只能採用下列其中一種設定:
glob

string

使用者提供的 glob 來比對要求網址路徑。

regex

string

使用者提供的 RE2 規則運算式,以便與要求網址路徑進行比對。

重新導向

Redirect 會指定網址模式,如果與要求網址路徑相符,就會觸發「託管」以重新導向至指定目的地路徑來回應。

JSON 表示法
{
  "statusCode": integer,
  "location": string,

  // Union field pattern can be only one of the following:
  "glob": string,
  "regex": string
  // End of list of possible types for union field pattern.
}
欄位
statusCode

integer

執行個體類型,要在回應中傳回的狀態 HTTP 代碼。這必須是有效的 3xx 狀態碼。

location

string

執行個體類型,要在回應的 HTTP 位置標頭中加入的值。

位置可以包含使用 : 前置字元從模式擷取的群組值,以便識別區隔,您也可以選擇使用 * 擷取網址的其他部分。例如:

"glob": "/:capture*",
"statusCode": 301,
"location": "https://example.com/foo/:capture"

聯集欄位 pattern
必要。用於比對要求網址路徑的字串網址模式,判斷是否套用這個重新導向。可以是 Bash 樣式 glob 或 RE2 規則運算式。

pattern 只能採用下列其中一種設定:
glob

string

使用者提供的 glob 來比對要求網址路徑。

regex

string

使用者提供的 RE2 規則運算式,以便與要求網址路徑進行比對。

重新編寫

Rewrite 會指定網址模式,如果與要求網址路徑相符,就會觸發「託管」作業,當做服務是否已指定到達網頁網址來回應。

JSON 表示法
{
  "functionRegion": string,

  // Union field pattern can be only one of the following:
  "glob": string,
  "regex": string
  // End of list of possible types for union field pattern.

  // Union field behavior can be only one of the following:
  "path": string,
  "function": string,
  "run": {
    object (CloudRunRewrite)
  }
  // End of list of possible types for union field behavior.
}
欄位
functionRegion

string

選用設定。指定重新編寫的函式叫用的 Cloud 區域。如未提供,預設為 us-central1。

聯集欄位 pattern
必要。用於比對要求網址路徑的字串網址模式,判斷是否套用此重寫。可以是 Bash 樣式 glob 或 RE2 規則運算式。

pattern 只能採用下列其中一種設定:
glob

string

使用者提供的 glob 來比對要求網址路徑。

regex

string

使用者提供的 RE2 規則運算式,以便與要求網址路徑進行比對。

聯集欄位 behavior
必要。重寫的行為。

behavior 只能採用下列其中一種設定:
path

string

重新寫入要求的網址路徑。

function

string

透過 Proxy 處理要求的目標函式。必須與匯出的函式名稱完全相符。

run

object (CloudRunRewrite)

要求會轉送至 Cloud Run。

CloudRunRewrite

設定的重寫作業將要求導向至 Cloud Run 服務。設定或更新 Firebase 託管設定時,如果 Cloud Run 服務不存在,要求就會失敗。Cloud Run 服務產生的任何錯誤都會傳送給使用者。舉例來說,如果您刪除某項服務,導向至該服務的任何要求都會收到 404 錯誤。

JSON 表示法
{
  "serviceId": string,
  "region": string,
  "tag": string
}
欄位
serviceId

string

執行個體類型,Cloud Run 服務的使用者定義的 ID。

region

string

選用設定。使用者提供託管 Cloud Run 服務的區域。

如未提供,預設為 us-central1

tag

string

選用設定。要將流量傳送至使用者提供的 TrafficConfig 代碼。

省略時,流量會傳送至服務範圍的 URI

結尾的斜線行為

用於定義是否應在要求網址路徑中新增或移除結尾的斜線。

列舉
TRAILING_SLASH_BEHAVIOR_UNSPECIFIED

未指定行為。

檔案只會在確切位置提供,而結尾的斜線僅會新增至目錄索引。

ADD 結尾斜線會新增至目錄索引,以及結尾不是副檔名的網址路徑。
REMOVE 結尾斜線會從目錄索引以及結尾不是副檔名的網址路徑移除

I18nConfig

如有提供,會啟用 i18n 重寫。

JSON 表示法
{
  "root": string
}
欄位
root

string

執行個體類型,使用者提供的路徑,讓系統在公開目錄中尋找國家/地區和語言特定內容。

方法

clone

使用指定版本的內容,在指定目標網站上建立新版本。

create

在指定網站建立新版本。

delete

刪除指定版本。

get

取得已為指定網站建立的特定版本。

list

列出已為指定網站建立的版本。

patch

更新指定版本的指定中繼資料。

populateFiles

將內容檔案新增至指定版本。