AWS Downloads

AWS Downloads

Certified

Download multiple S3 objects

Lists objects with filters, downloads them in bulk, emits metrics, and optionally performs a post-action (move/delete).

yaml
type: io.kestra.plugin.aws.s3.Downloads
yaml
id: aws_s3_downloads
namespace: company.team

tasks:
  - id: downloads
    type: io.kestra.plugin.aws.s3.Downloads
    accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
    secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
    region: "eu-central-1"
    bucket: "my-bucket"
    prefix: "sub-dir"

Download a prefix and verify the stored S3 checksum on each object

yaml
id: aws_s3_downloads_validate_checksum
namespace: company.team

tasks:
  - id: downloads
    type: io.kestra.plugin.aws.s3.Downloads
    accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
    secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
    region: "eu-central-1"
    bucket: "my-bucket"
    prefix: "sub-dir"
    validateChecksum: true
Properties
Possible Values
MOVEDELETENONE

The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering

The S3 bucket where to download the file

Access Key Id in order to connect to AWS

If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

Defaultfalse

Compatibility mode

Use default async client for S3-compatible endpoints (limits transfers to ~2GB).

A delimiter is a character you use to group keys

The EncodingType property for this object

The endpoint with which the SDK should communicate

This property allows you to use a different S3 compatible storage backend.

The account ID of the expected bucket owner

If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

DefaultBOTH
Possible Values
FILESDIRECTORYBOTH

The type of objects to filter: files, directory, or both

Force path style access

Must only be used when compatibilityMode is enabled.

Marker is where you want Amazon S3 to start listing from

Amazon S3 starts listing after this specified key. Marker can be any key in the bucket.

Default25

Max files

Limit returned files; default 25.

Default1000

Maximum number of objects returned across all paginated S3 calls

Total upper bound on the objects returned. It also sets the per-page size sent to S3, which AWS caps at 1000. The listing pages until this total is reached or the bucket is exhausted. Default 1000.

The destination bucket and key for MOVE action

Definitions
bucket*Requiredstring

Bucket

key*Requiredstring

Key

kmsKeyIdstring

KMS Key ARN or Key ID to use when server side encryption is AWS_KMS

serverSideEncryptionstring
Possible Values
NONEAES256AWS_KMS

Server side encryption to apply to the target object

Example: AES256 or AWS_KMS

Reference (ref) of the pluginDefaults to apply to this task.

Limits the response to keys that begin with the specified prefix

A regexp to filter on full key

ex: regExp: .* to match all files regExp: .*2020-01-0.\\.csv to match files between 01 and 09 of january ending with .csv

AWS region with which the SDK should communicate

Sets the value of the RequestPayer property for this object

Secret Key Id in order to connect to AWS

If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource

If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

The AWS STS endpoint with which the SDKClient should communicate

AWS STS Role

The Amazon Resource Name (ARN) of the role to assume. If set the task will use the StsAssumeRoleCredentialsProvider. If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

AWS STS External Id

A unique identifier that might be required when you assume a role in another account. This property is only used when an stsRoleArn is defined.

DefaultPT15M

AWS STS Session duration

The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an stsRoleArn is defined.

AWS STS Session name

This property is only used when an stsRoleArn is defined.

Defaultfalse

Validate checksum after download

When true, requests S3 to return the stored checksum and the AWS SDK verifies the downloaded bytes during transfer. Each object must have been uploaded with a checksum algorithm (SHA1, SHA256, CRC32, or CRC32C) for verification to occur; if an object has no stored checksum, a warning is logged and the download is not verified.

Objects

Downloaded objects with metadata.

Definitions
checksumAlgorithmstring
checksumValuestring
etagstring
keystring
lastModifiedstring
Formatdate-time
owner
displayNamestring
idstring
sizeinteger
uristring
Formaturi
SubTypestring

Output files

Map of object key to downloaded URI.

Unitobjects

The number of files downloaded from the S3 bucket.

Unitbytes

The total size in bytes of all downloaded files.