Boto 配置文件

本页面介绍 gsutil 如何使用 boto 配置文件,并提供了一个使用该文件的协作示例。boto(适用于 Python 的 Amazon S3 SDK)也会使用 boto 配置文件。

配置文件概览

boto 配置文件包含用于控制 gsutil 行为方式的值。例如,prefer_api 变量用于确定优先使用哪个 API gsutil。您可以直接修改 boto 配置文件,以更改 boto 配置文件变量。虽然大多数用户都不需要修改这些变量,但通常由于以下原因之一而需要修改:

位置

boto 配置文件的默认位置位于用户主目录 ~/.boto(对于 Linux 和 macOS)和 %HOMEDRIVE%%HOMEPATH%(对于 Windows)中。您可以通过运行命令 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,您需要创建公司范围内的设置(如代理配置和并行复合上传阈值),并将这些设置存储到各员工可在其 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 文件中指定的配置。必要时,管理员可以更改中央配置文件中的代理设置、并行复合上传阈值和其他设置,并使所做更改反映到所有使用中央配置文件的员工。