AWS S3 Plugin

The plugin provides functionality to interact with Amazon Simple Storage Service (Amazon S3).

Installation

Example 1. build.gradle
implementation(group: 'org.vividus', name: 'vividus-plugin-aws-s3', version: '0.2.12')

Configuration

Authentication

The plugin will search for credentials using the default credential provider chain in the following order:

  1. Environment variables: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY (the optional variable for session token is AWS_SESSION_TOKEN).

  2. The properties: system.aws.accessKeyId and system.aws.secretKey (the optional property for session token is system.aws.sessionToken).

  3. Web Identity Token credentials from the environment or container.

  4. In the default credentials file (the location of this file varies by platform).

  5. Credentials delivered through the Amazon EC2 container service if the AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable is set and security manager has permission to access the variable.

  6. In the instance profile credentials, which exist within the instance metadata associated with the IAM role for the EC2 instance. This step is available only when running your application on an Amazon EC2 instance, but provides the greatest ease of use and best security when working with Amazon EC2 instances.

  7. If the plugin still hasn’t found credentials by this point, client creation fails with an exception.

See the official "Working with AWS Credentials" guide to get more details.

Region Selection

The plugin will search for credentials using the default region provider chain in the following order:

  1. Environment variable: AWS_REGION.

  2. The property: system.aws.region.

  3. AWS shared configuration file (usually located at ~/.aws/config).

  4. Use the Amazon EC2 instance metadata service to determine the region of the currently running Amazon EC2 instance.

  5. If the plugin still hasn’t found a region by this point, client creation fails with an exception.

See the official "AWS Region Selection" guide to get more details.

Steps

Upload data

Upload the specified data to Amazon S3 under the specified bucket and key name.

When I upload data `$data` with key `$objectKey` and content type `$contentType` to S3 bucket `$bucketName`
  • $data - the data to be uploaded

  • $objectKey - the key under which to store the specified data

  • $contentType - the MIME type of data

  • $bucketName - the name of an existing bucket

Example 2. Upload data to Amazon S3
When I upload data `{"my":"json"}` with key `folder/name.json` and content type `application/json` to S3 bucket `testBucket`

Download S3 object

Retrieve the object by key from the provided S3 bucket and save its content to a variable. The specified bucket and object key must exist, or an error will result.

When I fetch object with key `$objectKey` from S3 bucket `$bucketName` and save result to $scopes variable `$variableName`
Example 3. Download S3 object
When I fetch object with key `/path/file.json` from S3 bucket `some-bucket-name` and save result to scenario variable `my-json-var`