MySQL Shell 8.4  /  ...  /  S3 相容儲存

4.7.2 S3 相容儲存

MySQL Shell S3 支援已針對以下 S3 相容儲存服務進行測試

MySQL Shell 支援在環境變數和組態檔案中設定 AWS 憑證。

組態參數優先順序

組態參數依優先順序使用

  1. 選項。例如,s3Profile 的優先順序高於環境變數 AWS_PROFILE 和組態檔案中的預設設定檔。

  2. 環境變數。例如,環境變數 AWS_SHARED_CREDENTIALS_FILE 的優先順序高於 credentials 檔案的預設位置 ~/.aws/credentials

  3. 預設環境變數 (如果存在)。例如,環境變數 AWS_REGION 和環境變數 AWS_DEFAULT_REGION

  4. 在組態檔案中定義的參數。

  5. AWS 預設值。

例如,對於 AWS 區域,依優先順序排列:

  1. s3Region 選項。

  2. AWS_REGION 環境變數。

  3. AWS_DEFAULT_REGION 環境變數。

  4. 在組態檔案中定義的區域。

  5. us-east-1 的預設值。

AWS 憑證依以下優先順序讀取:

  1. 環境變數 (如果未定義 s3Profile 選項)。

  2. 指定設定檔的憑證檔案。

  3. credential_process,如組態檔案中所定義。此組態類型包含一個外部命令,用於擷取或產生 AWS 驗證憑證並將其寫入 stdout

  4. 指定設定檔的組態檔案。

環境變數

如需有關 AWS 環境變數的資訊,請參閱用於設定 AWS CLI 的環境變數

您可以定義以下 AWS S3 專用環境變數:

  • AWS_PROFILE:指定要使用的設定檔名稱。這可以是憑證或組態檔案中設定檔的名稱,或值 default 以使用預設設定檔。此環境變數會覆寫組態檔案中命名的 [default] 設定檔。您可以使用 --s3Profile 選項覆寫此環境變數。

  • AWS_SHARED_CREDENTIALS_FILE:用於儲存存取金鑰的檔案位置。例如 ~/.aws/credentials

  • AWS_CONFIG_FILE:用於儲存組態設定檔的檔案位置。例如 ~/.aws/config

  • AWS_REGION:指定要將請求傳送至的 AWS 區域。此值會覆寫 AWS_DEFAULT_REGION 環境變數和組態檔案中定義的 profile

  • AWS_DEFAULT_REGION:指定要將請求傳送至的 AWS 區域。如果指定,此值會被 --s3Region 選項和 AWS_REGION 環境變數覆寫。

  • AWS_ACCESS_KEY_ID:指定與 IAM 使用者或角色關聯的 AWS 存取金鑰。

  • AWS_SECRET_ACCESS_KEY:指定與存取金鑰關聯的秘密金鑰。此變數會覆寫設定檔中定義的 aws_secret_access_key

  • AWS_SESSION_TOKEN:指定如果您使用臨時安全憑證所需的會期權杖值。此變數會覆寫設定檔中定義的 aws_session_token

組態檔案

MySQL Shell 在一個或多個組態檔案中需要以下參數:

  • aws_access_key_id:指定與使用者關聯的存取金鑰。如果不存在,則會擲回例外狀況。

  • aws_secret_access_key:指定與存取金鑰關聯的秘密金鑰。如果不存在,則會擲回例外狀況。

  • aws_session_token:指定如果您使用臨時安全憑證所需的會期權杖。如果不存在,則不會用來驗證使用者。

  • region:指定雲端服務區域。如果不存在,則使用 us-east-1 的預設值。

  • credential_process:此組態類型包含一個外部命令,用於擷取或產生 AWS 驗證憑證並將其寫入 stdout

    注意

    credential_process 只能在 config 檔案中定義。

    如需更多資訊,請參閱以下內容:

如果您已安裝並設定 AWS CLI,MySQL Shell 會自動從預設位置 .aws/ 讀取連線參數。若要使用替代組態,請從命令列使用相關的覆寫選項。

如果您使用 Oracle Cloud Infrastructure 的 S3 相容性 API,請參閱建立客戶秘密金鑰,以瞭解如何建立所需的憑證。

注意

依預設,AWS CLI 會建立兩個組態檔案:config (儲存區域和輸出格式等參數) 和 credentials (儲存存取金鑰和會期權杖)。也可以將所有組態參數放在單一檔案 config 中。如需更多資訊,請參閱AWS 組態和驗證設定 。但是,如果您在兩個檔案中都定義了存取金鑰和秘密存取金鑰,則以 credentials 檔案中定義的為優先。

以下範例顯示一對預設的 AWS CLI 組態檔案:

        /home/.aws/credentials
        
        [default]
        aws_access_key_id = AKIA6AV......
        aws_secret_access_key = XHRY579I.....
        
        /home/.aws/config
        
        [default]
        region = us-west-1
        output = json

連線重試策略

所有連線 AWS S3 失敗的連線都會重試三次,每次重試之間延遲 1 秒。

如果在建立連線後 10 分鐘發生失敗,則延遲會變更為指數退讓策略

  • 第一次延遲:3-6 秒

  • 第二次延遲:18-36 秒

  • 第三次延遲:40-80 秒