Boto 設定檔

本頁面說明 gsutil 如何使用 boto 設定檔,並提供使用該檔案的協同合作範例。boto 設定檔也由 boto 使用,後者是 Python 適用的 Amazon S3 SDK。

設定檔總覽

boto 設定檔包含用於控制 gsutil 行為方式的值。舉例來說,prefer_api 變數會決定 gsutil 優先使用的 API。您可以直接編輯設定檔來變更 Boto 設定檔變數。雖然大多數使用者不需要編輯這些變數,但通常會編輯這些變數的原因如下:

位置

Linux 和 macOS 作業系統的 boto 設定檔預設位置位於使用者主目錄 ~/.boto 中,而 Windows 作業系統的 boto 設定檔預設位置則位於 %HOMEDRIVE%%HOMEPATH%。如要取得該設定檔的位置,請執行 gsutil version -l 指令。

您可以設定 BOTO_CONFIG 環境變數,覆寫 gsutil 預期尋找設定檔的位置。您也可以使用 : 分隔路徑 (或 Windows 的 ;) 設定 BOTO_PATH 環境變數,藉此設定要載入的 boto 設定檔路徑。例如,將 BOTO_PATH 環境變數設為:

/etc/projects/my_group_project.boto.cfg:/home/mylogin/.boto

會導致 gsutil 依序載入路徑中找到的每個設定檔。如果您想為許多使用者設定一些共用設定狀態,這項功能就很實用。如要瞭解如何在這種資料共用和協作情境下使用設定檔,請參閱相關範例

結構

設定檔包含多個部分:[Credentials][Boto][GSUtil][OAuth2]。以下是目前定義的設定,並依區段劃分。這些設定的用途已記錄在 boto 設定檔中,位於每個設定前方的註解中:

[Credentials]
  aws_access_key_id
  aws_secret_access_key
  gs_access_key_id
  gs_host
  gs_host_header
  gs_json_host
  gs_json_host_header
  gs_json_port
  gs_oauth2_refresh_token
  gs_port
  gs_secret_access_key
  gs_service_client_id
  gs_service_key_file
  gs_service_key_file_password
  s3_host
  s3_host_header
  s3_port

[Boto]
  proxy
  proxy_type
  proxy_port
  proxy_user
  proxy_pass
  proxy_rdns
  http_socket_timeout
  ca_certificates_file
  https_validate_certificates
  debug
  max_retry_delay
  num_retries

[GoogleCompute]
  service_account

[GSUtil]
  check_hashes
  content_language
  decryption_key1 ... 100
  default_api_version
  disable_analytics_prompt
  encryption_key
  json_api_version
  max_upload_compression_buffer_size
  parallel_composite_upload_component_size
  parallel_composite_upload_threshold
  sliced_object_download_component_size
  sliced_object_download_max_components
  sliced_object_download_threshold
  parallel_process_count
  parallel_thread_count
  gzip_compression_level
  prefer_api
  resumable_threshold
  resumable_tracker_dir (deprecated in 4.6, use state_dir)
  rsync_buffer_lines
  software_update_check_period
  state_dir
  tab_completion_time_logs
  tab_completion_timeout
  task_estimation_threshold
  test_cmd_regional_bucket_location
  test_notification_url
  use_magicfile
  test_hmac_service_account
  test_hmac_alt_service_account
  test_hmac_list_service_account

[OAuth2]
  client_id
  client_secret
  oauth2_refresh_retries
  provider_authorization_uri
  provider_label
  provider_token_uri
  token_cache

編輯檔案時,請小心不要誤編輯任何設定名稱 (例如 gs_access_key_id),也不要移除任何區段分隔符號 (例如 [Credentials])。

更新至最新設定檔

隨著時間的推移,新的可控設定功能會加入 boto 設定檔,但大多數 gsutil 使用者只會建立一次設定檔,然後保留很長一段時間。也就是說,當您更新至較新版本的 gsutil 時,新功能不會顯示。如要取得最新的設定檔 (內含最新設定和文件),請重新命名目前的檔案 (例如改為 .boto_old),執行 gcloud init (如果使用的是舊版獨立的 Gustil,請使用 gsutil config 搭配 -a-e 標記),然後將要保留的所有設定從舊檔案轉移至新建的檔案。不過請注意,如果您使用 OAuth2 憑證,且重新執行 OAuth2 設定程序,則會使先前的 OAuth2 憑證失效。

使用設定檔的範例

在本範例中,某間小型公司想要使用 Cloud Storage 做為員工的儲存系統。身為 IT 管理員,您在Google Cloud 主控台中建立專案,並為每位員工建立值區。為了讓員工更容易使用 Cloud Storage,您想要在中央檔案內建立和儲存適用於全公司的設定 (例如 Proxy 設定和平行複合上傳門檻),作為員工在 BOTO 設定路徑中的指向目標。如此一來,各員工便無須手動調整設定的共用部分,而管理員也能在有需要時輕鬆地變更這些共用設定。

為了達成上述目標,請執行下列步驟:

  1. 建立所有員工皆可讀取的中央 boto 設定檔。

    您可以使用 gcloud init 來完成這項操作。

    舉例來說,boto 設定檔可能含有下列資訊:

    [Boto]
    proxy = yourproxy.com
    proxy_port = 8080
    proxy_type = http
     
    [GSUtil]
    parallel_composite_upload_threshold = 150M
    
  2. 指示員工安裝 Google Cloud CLI

    安裝期間,員工必須指定公司目前使用的專案 ID。由於您不應集中共用驗證憑證,因此他們也必須產生個別驗證憑證

  3. 指示員工新增 BOTO_PATH 環境變數。

    BOTO_PATH 環境變數會列出中央設定檔的路徑,後面接續員工的本機設定檔。舉例來說,如果中央設定檔位於 centralhub/ 目錄中,則使用者 jane 的 BOTO_PATH 環境變數可能為:

    BOTO_PATH =/centralhub/boto.cfg:home/jane/.boto

員工執行 gsutil 時,會自動使用中央 boto 檔案內指定的設定。如有需要,管理員可以變更中央設定檔內的 Proxy 設定、平行複合上傳門檻以及其他設定,並且讓變更內容反映在所有使用中央設定檔的員工電腦上。