

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查找和更改共享`credentials`文件`config` Amazon SDKs 和工具的位置
<a name="file-location"></a>

共享`credentials`文件 Amazon `config`和文件是纯文本文件，其中包含 Amazon SDKs 和工具的配置信息。这些文件位于您的本地环境中，由 SDK 代码或在该环境中运行的 Amazon CLI 命令自动使用。例如，在您自己的计算机上或在 Amazon Elastic Compute Cloud 实例上开发时。

当 SDK 或工具运行时，将会检查这些文件并加载所有可用的配置设置。如果这些文件尚不存在，则 SDK 或工具会自动创建一个基础文件。

默认情况下，这些文件位于您的 `home` 或用户文件夹下名为 `.aws` 的文件夹中。


| 操作系统 | 文件的默认位置和名称 | 
| --- | --- | 
| Linux 和 macOS | `~/.aws/config`<br />`~/.aws/credentials` | 
| Windows | `%USERPROFILE%\.aws\config`<br />`%USERPROFILE%\.aws\credentials` | 

## 主目录解析
<a name="homeDirRes"></a>

`~` 仅在下列情况下才用于主目录解析：
+ 作为路径的开始
+ 其后紧接 `/` 或平台特定的分隔符。在 Windows 上，`~/` 和 `~\` 都会解析到主目录。

在确定主目录时，系统会检查以下变量：
+ （所有平台）`HOME` 环境变量
+ （Windows 平台）`USERPROFILE` 环境变量
+ （Windows 平台）`HOMEDRIVE` 和 `HOMEPATH` 环境变量的串连（`$HOMEDRIVE$HOMEPATH`）
+ （可选，根据 SDK 或工具）特定于 SDK 或工具的主路径解析函数或变量

如有可能，如果在路径开头指定了用户的主目录（例如，`~username/`），则会将其解析到请求的用户名的起始目录（例如，`/home/username/.aws/config`）。

## 更改这些文件的默认位置
<a name="file-location-change"></a>

您可以使用以下任一方法来覆盖 SDK 或工具加载这些文件的位置。

### 使用环境变量
<a name="file-location-change-envar"></a>

可以设置以下环境变量，将这些文件的位置或名称从默认值更改为自定义值：
+ `config` 文件环境变量：**`AWS_CONFIG_FILE`**
+ `credentials` 文件环境变量：**`AWS_SHARED_CREDENTIALS_FILE`**

------
#### [ Linux/macOS ]

您可以通过在 Linux 或 macOS 上运行以下[导出](https://linuxconfig.org/learning-linux-commands-export)命令来指定备用位置。

```
$ export AWS_CONFIG_FILE=/some/file/path/on/the/system/config-file-name
$ export AWS_SHARED_CREDENTIALS_FILE=/some/other/file/path/on/the/system/credentials-file-name
```

------
#### [ Windows ]

您可以通过在 Windows 上运行以下[setx](https://docs.microsoft.com/windows-server/administration/windows-commands/setx)命令来指定备用位置。

```
C:\> setx AWS_CONFIG_FILE c:\some\file\path\on\the\system\config-file-name
C:\> setx AWS_SHARED_CREDENTIALS_FILE c:\some\other\file\path\on\the\system\credentials-file-name
```

------

有关使用环境变量配置系统的更多信息，请参阅[使用环境变量进行全局配置 Amazon SDKs 和工具](environment-variables.md)。

### 使用 JVM 系统属性
<a name="file-location-change-jvmSysProp"></a>

对于在 JVM 上运行的适用于 Kotlin 的 SDK 以及适用于 Java 的 SDK 2.x，您可以通过设置以下 JVM 系统属性，将这些文件的位置或名称从默认值更改为自定义值：
+ `config` 文件 JVM 系统属性：**`aws.configFile`**
+ `credentials` 文件环境变量：**`aws.sharedCredentialsFile`**

有关如何设置 JVM 系统属性的说明，请参阅[如何设置 JVM 系统属性](jvm-system-properties.md#jvm-sys-props-set)。适用于 Java 的 SDK 1.x 不支持这些系统属性。