func NewAmazonClientFromSecret(bucket string, reversed ...bool) (Client, error) {
	// Get AWS region (required for constructing an AWS client)
	region, err := readSecretFile("/amazon-region")
	if err != nil {
		return nil, fmt.Errorf("amazon-region not found")
	}

	// Use or retrieve S3 bucket
	if bucket == "" {
		bucket, err = readSecretFile("/amazon-bucket")
		if err != nil {
			return nil, err
		}
	}

	// Retrieve either static or vault credentials; if neither are found, we will
	// use IAM roles (i.e. the EC2 metadata service)
	var creds AmazonCreds
	creds.ID, err = readSecretFile("/amazon-id")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.Secret, err = readSecretFile("/amazon-secret")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.Token, err = readSecretFile("/amazon-token")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.VaultAddress, err = readSecretFile("/amazon-vault-addr")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.VaultRole, err = readSecretFile("/amazon-vault-role")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.VaultToken, err = readSecretFile("/amazon-vault-token")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}

	// Get Cloudfront distribution (not required, though we can log a warning)
	distribution, err := readSecretFile("/amazon-distribution")
	return NewAmazonClient(region, bucket, &creds, distribution, reversed...)
}
func NewAmazonClientFromSecret(bucket string, reversed ...bool) (Client, error) {
	
	region, err := readSecretFile("/amazon-region")
	if err != nil {
		return nil, fmt.Errorf("amazon-region not found")
	}

	
	if bucket == "" {
		bucket, err = readSecretFile("/amazon-bucket")
		if err != nil {
			return nil, err
		}
	}

	
	
	var creds AmazonCreds
	creds.ID, err = readSecretFile("/amazon-id")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.Secret, err = readSecretFile("/amazon-secret")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.Token, err = readSecretFile("/amazon-token")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.VaultAddress, err = readSecretFile("/amazon-vault-addr")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.VaultRole, err = readSecretFile("/amazon-vault-role")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}
	creds.VaultToken, err = readSecretFile("/amazon-vault-token")
	if err != nil && !os.IsNotExist(err) {
		return nil, err
	}

	
	distribution, err := readSecretFile("/amazon-distribution")
	return NewAmazonClient(region, bucket, &creds, distribution, reversed...)
}
func NewAmazonClientFromSecret ( bucket string , reversed ... bool ) ( Client , error ) { // Get AWS region (required for constructing an AWS client) region , err := readSecretFile ( " " ) if err != nil { return nil , fmt . Errorf ( " " ) } // Use or retrieve S3 bucket if bucket == " " { bucket , err = readSecretFile ( " " ) if err != nil { return nil , err } } // Retrieve either static or vault credentials; if neither are found, we will // use IAM roles (i.e. the EC2 metadata service) var creds AmazonCreds creds . ID , err = readSecretFile ( " " ) if err != nil && ! os . IsNotExist ( err ) { return nil , err } creds . Secret , err = readSecretFile ( " " ) if err != nil && ! os . IsNotExist ( err ) { return nil , err } creds . Token , err = readSecretFile ( " " ) if err != nil && ! os . IsNotExist ( err ) { return nil , err } creds . VaultAddress , err = readSecretFile ( " " ) if err != nil && ! os . IsNotExist ( err ) { return nil , err } creds . VaultRole , err = readSecretFile ( " " ) if err != nil && ! os . IsNotExist ( err ) { return nil , err } creds . VaultToken , err = readSecretFile ( " " ) if err != nil && ! os . IsNotExist ( err ) { return nil , err } // Get Cloudfront distribution (not required, though we can log a warning) distribution , err := readSecretFile ( " " ) return NewAmazonClient ( region , bucket , & creds , distribution , reversed ... ) }
// NewAmazonClientFromSecret constructs an amazon client by reading credentials
// from a mounted AmazonSecret. You may pass "" for bucket in which case it
// will read the bucket from the secret.
NewAmazonClientFromSecret constructs an amazon client by reading credentials from a mounted AmazonSecret . You may pass for bucket in which case it will read the bucket from the secret .