
AWS S3 CopyList
CertifiedCopy multiple S3 objects
AWS S3 CopyList
Copy multiple S3 objects
Lists the objects matching prefix, regexp and filter, then copies each one server-side under to.prefix, optionally in parallel and deleting the source after the copy (a move).
A key keeps its path relative to prefix, or its full key when prefix is not set: with prefix: a/ and to.prefix: b/, a/x/y.csv is copied to b/x/y.csv.
Only the first maxKeys (default 1000) matching objects are handled per run.
Server-side copy is limited to objects up to 5 GB, use the Copy task for larger objects.
type: io.kestra.plugin.aws.s3.CopyListExamples
Copy all objects under a prefix to another bucket
id: aws_s3_copy_list
namespace: company.team
tasks:
- id: copy_prefix
type: io.kestra.plugin.aws.s3.CopyList
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
region: "eu-central-1"
bucket: "source-bucket"
prefix: "daily-export/"
to:
bucket: "dest-bucket"
prefix: "backup/"
Move objects matching a regex within the same bucket (delete source after copy)
id: aws_s3_move_list
namespace: company.team
tasks:
- id: move_logs
type: io.kestra.plugin.aws.s3.CopyList
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
region: "eu-central-1"
bucket: "company-logs"
prefix: "inbound/"
regexp: ".*\\.json"
to:
prefix: "processed/"
delete: true
concurrent: 4
Properties
bucket *string
The S3 bucket where to download the file
to *
Destination bucket and prefix
io.kestra.plugin.aws.s3.CopyList-Destination
The destination bucket
Defaults to the source bucket. In the same bucket, to.prefix must be outside prefix unless a delimiter is set.
KMS key ARN or ID, when serverSideEncryption is AWS_KMS
The destination prefix
Each key keeps its path relative to prefix under it. Defaults to the bucket root.
NONEAES256AWS_KMSServer-side encryption for the copied objects
accessKeyId string
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.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150compatibilityMode booleanstring
Enable compatibility mode
Use it to connect to S3 bucket with S3 compatible services that don't support the new transport client.
concurrent integerstring
Parallel copies
Copies run one at a time when unset, otherwise between 2 and 64 at once.
delete booleanstring
falseDelete source objects after copy
When true, each source object is deleted once its copy succeeded, which makes the task a move.
delimiter string
A delimiter is a character you use to group keys
encodingType string
The EncodingType property for this object
endpointOverride string
The endpoint with which the SDK should communicate
This property allows you to use a different S3 compatible storage backend.
errorOnEmpty booleanstring
falseError if empty
When true, the task fails when no object matches the filters.
expectedBucketOwner string
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).
filter string
BOTHFILESDIRECTORYBOTHThe type of objects to filter: files, directory, or both
forcePathStyle booleanstring
Force path style access
Must only be used when compatibilityMode is enabled.
marker string
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.
maxKeys integerstring
1000Maximum number of objects returned across all paginated S3 calls
Total upper bound on the objects returned, counted after regexp and filter. Default 1000, must be 0 or more, and 0 returns no objects.
When regexp is unset and filter is BOTH, 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, so a regexp or filter that matches few keys can read every key under prefix. Set prefix to narrow it.
prefix string
Limits the response to keys that begin with the specified prefix
regexp string
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
region string
AWS region with which the SDK should communicate
requestPayer string
Sets the value of the RequestPayer property for this object
secretKeyId string
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.
sessionToken string
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.
stsEndpointOverride string
The AWS STS endpoint with which the SDKClient should communicate
stsRoleArn string
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.
stsRoleExternalId string
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.
stsRoleSessionDuration string
PT15MAWS 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.
stsRoleSessionName string
AWS STS Session name
This property is only used when an stsRoleArn is defined.
Outputs
count integer
0The number of objects copied
size integer
0The total size in bytes of the objects copied
Metrics
s3.objects.copied.count counter
objectsThe total number of objects copied.
s3.objects.copied.size counter
bytesThe total size in bytes of objects copied.