Boto 設定檔

本頁面說明 gsutil 如何使用 boto 設定檔,並提供使用該檔案的協作範例。boto (適用於 Python 的 Amazon S3 SDK) 也會使用 boto 設定檔。

設定檔總覽

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 (如果使用舊版獨立 gsutil,則執行 gsutil config 並加上 -a 或 -e 旗標),然後將要保留的設定從舊檔案轉移到新建立的檔案。不過請注意,如果您使用的是 OAuth2 憑證,且您返回 OAuth2 設定程序,則先前的 OAuth2 憑證會失效。

使用設定檔的範例

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

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

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

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

    [Boto]
    proxy = yourproxy.com
    proxy_port = 8080
    proxy_type = http
     
    [GSUtil]
    parallel_composite_upload_threshold = 150M
    
  2. 請員工安裝及驗證 gsutil。

    安裝期間,員工需要指定公司使用的專案 ID,並產生個別驗證憑證,因為您絕不應集中分享驗證憑證。

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

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

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

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