106 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# @smithy/shared-ini-file-loader
 | 
						|
 | 
						|
[](https://www.npmjs.com/package/@smithy/shared-ini-file-loader)
 | 
						|
[](https://www.npmjs.com/package/@smithy/shared-ini-file-loader)
 | 
						|
 | 
						|
## AWS Shared Configuration File Loader
 | 
						|
 | 
						|
This module provides a function that reads from AWS SDK configuration files and
 | 
						|
returns a promise that will resolve with a hash of the parsed contents of the
 | 
						|
AWS credentials file and of the AWS config file. Given the [sample
 | 
						|
files](#sample-files) below, the promise returned by `loadSharedConfigFiles`
 | 
						|
would resolve with:
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
  configFile: {
 | 
						|
    'default': {
 | 
						|
      aws_access_key_id: 'foo',
 | 
						|
      aws_secret_access_key: 'bar',
 | 
						|
    },
 | 
						|
    dev: {
 | 
						|
      aws_access_key_id: 'foo1',
 | 
						|
      aws_secret_access_key: 'bar1',
 | 
						|
    },
 | 
						|
    prod: {
 | 
						|
      aws_access_key_id: 'foo2',
 | 
						|
      aws_secret_access_key: 'bar2',
 | 
						|
    },
 | 
						|
    'testing host': {
 | 
						|
      aws_access_key_id: 'foo4',
 | 
						|
      aws_secret_access_key: 'bar4',
 | 
						|
    }
 | 
						|
  },
 | 
						|
  credentialsFile: {
 | 
						|
    'default': {
 | 
						|
      aws_access_key_id: 'foo',
 | 
						|
      aws_secret_access_key: 'bar',
 | 
						|
    },
 | 
						|
    dev: {
 | 
						|
      aws_access_key_id: 'foo1',
 | 
						|
      aws_secret_access_key: 'bar1',
 | 
						|
    },
 | 
						|
    prod: {
 | 
						|
      aws_access_key_id: 'foo2',
 | 
						|
      aws_secret_access_key: 'bar2',
 | 
						|
    }
 | 
						|
  },
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
If a file is not found, its key (`configFile` or `credentialsFile`) will instead
 | 
						|
have a value of an empty object.
 | 
						|
 | 
						|
## Supported configuration
 | 
						|
 | 
						|
You may customize how the files are loaded by providing an options hash to the
 | 
						|
`loadSharedConfigFiles` function. The following options are supported:
 | 
						|
 | 
						|
- `filepath` - The path to the shared credentials file. If not specified, the
 | 
						|
  provider will use the value in the `AWS_SHARED_CREDENTIALS_FILE` environment
 | 
						|
  variable or a default of `~/.aws/credentials`.
 | 
						|
- `configFilepath` - The path to the shared config file. If not specified, the
 | 
						|
  provider will use the value in the `AWS_CONFIG_FILE` environment variable or a
 | 
						|
  default of `~/.aws/config`.
 | 
						|
- `ignoreCache` - The provider will normally cache the contents of the files it
 | 
						|
  loads. This option will force the provider to reload the files from disk.
 | 
						|
  Defaults to `false`.
 | 
						|
 | 
						|
## Sample files
 | 
						|
 | 
						|
### `~/.aws/credentials`
 | 
						|
 | 
						|
```ini
 | 
						|
[default]
 | 
						|
aws_access_key_id=foo
 | 
						|
aws_secret_access_key=bar
 | 
						|
 | 
						|
[dev]
 | 
						|
aws_access_key_id=foo2
 | 
						|
aws_secret_access_key=bar2
 | 
						|
 | 
						|
[prod]
 | 
						|
aws_access_key_id=foo3
 | 
						|
aws_secret_access_key=bar3
 | 
						|
```
 | 
						|
 | 
						|
### `~/.aws/config`
 | 
						|
 | 
						|
```ini
 | 
						|
[default]
 | 
						|
aws_access_key_id=foo
 | 
						|
aws_secret_access_key=bar
 | 
						|
 | 
						|
[profile dev]
 | 
						|
aws_access_key_id=foo2
 | 
						|
aws_secret_access_key=bar2
 | 
						|
 | 
						|
[profile prod]
 | 
						|
aws_access_key_id=foo3
 | 
						|
aws_secret_access_key=bar3
 | 
						|
 | 
						|
[profile "testing host"]
 | 
						|
aws_access_key_id=foo4
 | 
						|
aws_secret_access_key=bar4
 | 
						|
```
 |