本页面介绍 gsutil 如何使用 boto 配置文件,并提供了一个使用该文件的协作示例。boto(适用于 Python 的 Amazon S3 SDK)也会使用 boto 配置文件。
配置文件概览
boto 配置文件包含用于控制 gsutil 行为方式的值。例如,prefer_api
变量用于确定优先使用哪个 API gsutil。您可以直接修改 boto 配置文件,以更改 boto 配置文件变量。虽然大多数用户都不需要修改这些变量,但通常由于以下原因之一而需要修改:
- 设置 gsutil 以通过代理运行。
- 使用客户管理的加密密钥或客户提供的加密密钥。
- 对全局 gsutil 行为执行专门的自定义。
位置
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 配置路径中指向的一个中央文件中。这样一来,所有员工都不需要手动设置配置的共享部分,并且管理员还可以在必要时轻松更改这些共享配置。
为了实现此目标,请执行以下步骤:
创建一个可供所有员工读取的中央 boto 配置文件。
可使用
gcloud init
实现这一目的。例如,boto 配置文件可能包含以下内容:
[Boto] proxy = yourproxy.com proxy_port = 8080 proxy_type = http [GSUtil] parallel_composite_upload_threshold = 150M
指示员工安装 Google Cloud CLI。
在安装期间,员工需要指定公司正在使用的项目 ID。此外,员工还需要生成个人身份验证凭据,因为您任何时候都不应该集中共享身份验证凭据。
指示员工添加 BOTO_PATH 环境变量。
BOTO_PATH 环境变量可依次列出中央配置文件的路径和员工的本地配置文件。例如,如果中央配置文件位于
centralhub/
目录中,则对于用户jane
,BOTO_PATH 环境变量可能如下所示:BOTO_PATH =/centralhub/boto.cfg:home/jane/.boto
当员工运行 gsutil 时,他们将自动使用中央 boto 文件中指定的配置。必要时,管理员可以更改中央配置文件中的代理设置、并行复合上传阈值和其他设置,并使所做更改反映到所有使用中央配置文件的员工。