# salt.modules.boto_s3

Connection module for Amazon S3 using boto3

Added in version 2018.3.0.

configuration:

  This module accepts explicit AWS credentials but can also utilize IAM roles assigned to the instance through Instance Profiles or it can read them from the ~/.aws/credentials file or from these environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY. Dynamic credentials are then automatically obtained from AWS API and no further configuration is necessary. More information available at:

      http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/
          iam-roles-for-amazon-ec2.html

      http://boto3.readthedocs.io/en/latest/guide/
          configuration.html#guide-configuration

  If IAM roles are not used you need to specify them either in a pillar or in the minion's config file:

      s3.keyid: GKTADJGHEIQSXMKKRBJ08H
      s3.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs

  A region may also be specified in the configuration:

      s3.region: us-east-1

  If a region is not specified, the default is us-east-1.

  It's also possible to specify key, keyid and region via a profile, either as a passed in dict, or as a string to pull from pillars or minion config:

      myprofile:
          keyid: GKTADJGHEIQSXMKKRBJ08H
          key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
          region: us-east-1

depends:

  boto3

salt.modules.boto_s3.get_object_metadata(name, extra_args=None, region=None, key=None, keyid=None, profile=None)

  Get metadata about an S3 object. Returns None if the object does not exist.

  You can pass AWS SSE-C related args and/or RequestPayer in extra_args.

  CLI Example:

      salt myminion boto_s3.get_object_metadata \
                       my_bucket/path/to/object \
                       region=us-east-1 \
                       key=key \
                       keyid=keyid \
                       profile=profile \

salt.modules.boto_s3.upload_file(source, name, extra_args=None, region=None, key=None, keyid=None, profile=None)

  Upload a local file as an S3 object.

  CLI Example:

      salt myminion boto_s3.upload_file \
                       /path/to/local/file \
                       my_bucket/path/to/object \
                       region=us-east-1 \
                       key=key \
                       keyid=keyid \
                       profile=profile \