Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

實作S3 REST API的建議

貢獻者

實作S3 REST API以搭配StorageGRID 使用時、請遵循以下建議。

針對不存在物件的使用者提出建議

如果您的應用程式會定期檢查某個物件是否存在於您不希望該物件實際存在的路徑、則應使用「可用」一致性控制項。例如、如果您的應用程式在放入之前就先前往某個位置、則應該使用「可用」一致性控制。

否則、如果執行頭作業找不到物件、當一個或多個儲存節點無法使用時、您可能會收到大量500個內部伺服器錯誤。

您可以使用「放置時段一致性」要求、為每個時段設定「可用」一致性控制、也可以在個別API作業的要求標頭中指定一致性控制。

物件金鑰建議

請根據第一次建立貯體的時間、遵循下列物件金鑰名稱建議。

在 StorageGRID 11.4 或更早版本中建立的貯體
  • 請勿使用隨機值做為物件金鑰的前四個字元。這與前AWS關於金鑰前置碼的建議不同。請改用非隨機、非唯一的前置字元、例如 image

  • 如果您遵循前 AWS 的建議、在金鑰首碼中使用隨機和唯一字元、請在物件金鑰前加上目錄名稱。也就是使用此格式:

    mybucket/mydir/f8e3-image3132.jpg

    而非此格式:

    mybucket/f8e3-image3132.jpg

在 StorageGRID 11.4 或更新版本中建立的貯體

不需要限制物件金鑰名稱以符合效能最佳實務做法。在大多數情況下、您可以對物件金鑰名稱的前四個字元使用隨機值。

提示 S3 工作負載的例外情況是、它會在一段短時間後持續移除所有物件。為了將此使用案例的效能影響降至最低、請將金鑰名稱的前置部分變更為每數千個物件、例如日期。例如、假設 S3 用戶端通常每秒寫入 2 、 000 個物件、而 ILM 或儲存庫生命週期原則則會在三天後移除所有物件。若要將效能影響降至最低、您可以使用如下模式命名金鑰: /mybucket/mydir/yyyymmddhhmmss-random_UUID.jpg

「range Reads」建議

如果是 "用於壓縮儲存物件的全域選項" 啟用後、 S3 用戶端應用程式應避免執行指定傳回位元組範圍的 Get Object 作業。這些「範圍讀取」作業效率不彰、因為StorageGRID 必須有效解壓縮物件才能存取所要求的位元組。從非常大的物件要求少量位元組的「Get Object」(取得物件)作業效率特別低;例如、從50 GB壓縮物件讀取10 MB範圍的效率不彰。

如果從壓縮物件讀取範圍、用戶端要求可能會逾時。

註 如果您需要壓縮物件、而用戶端應用程式必須使用範圍讀取、請增加應用程式的讀取逾時。