
MinIO Copy
CertifiedCopy a file between MinIO buckets
MinIO Copy
Copy a file between MinIO buckets
Copies an object from one MinIO bucket and key to another, optionally deleting the source afterwards.
type: io.kestra.plugin.minio.CopyExamples
id: minio_copy
namespace: company.team
tasks:
- id: copy
type: io.kestra.plugin.minio.Copy
accessKeyId: "<access-key>"
secretKeyId: "{{ secret('MINIO_SECRET_KEY_ID') }}"
region: "eu-central-1"
from:
bucket: "my-bucket"
key: "path/to/file"
to:
bucket: "my-bucket2"
key: "path/to/file2"
Copy file in an S3-compatible storage — here, Spaces Object Storage from Digital Ocean.
id: s3_compatible_copy
namespace: company.team
tasks:
- id: copy_file
type: io.kestra.plugin.minio.Copy
accessKeyId: "<access-key>"
secretKeyId: "{{ secret('MINIO_SECRET_KEY_ID') }}"
endpoint: https://<region>.digitaloceanspaces.com
from:
bucket: "my-bucket"
key: "path/to/file"
to:
bucket: "my-bucket2"
key: "path/to/file2"
Copy only when the source ETag matches a listed object
id: minio_copy_if_match
namespace: company.team
tasks:
- id: list
type: io.kestra.plugin.minio.List
accessKeyId: "<access-key>"
secretKeyId: "{{ secret('MINIO_SECRET_KEY_ID') }}"
region: "eu-central-1"
bucket: "my-bucket"
prefix: "path/to/file"
- id: copy
type: io.kestra.plugin.minio.Copy
accessKeyId: "<access-key>"
secretKeyId: "{{ secret('MINIO_SECRET_KEY_ID') }}"
region: "eu-central-1"
from:
bucket: "my-bucket"
key: "path/to/file"
matchETag: "{{ outputs.list.objects[0].etag }}"
to:
bucket: "my-bucket"
key: "path/to/file-copy"
Properties
accessKeyId string
Access Key Id for authentication
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
{}1150bucket string
The bucket name
caPem string
CA PEM certificate content
CA certificate as text, used to verify SSL/TLS connections to custom MinIO endpoints.
clientPem string
Client PEM certificate content
PEM client certificate as text, used to authenticate the connection to MinIO (mTLS).
delete booleanstring
falseWhether to delete the source file after download
endpoint string
URL to the MinIO endpoint
from
The source bucket and key
io.kestra.plugin.minio.Copy-CopyObjectFrom
The bucket name
The bucket key
Copy only if the source ETag matches
Maps to the S3 x-amz-copy-source-if-match header.
The copy fails with a precondition error when the source ETag differs.
Accepts both quoted and unquoted ETags, e.g. "9b2cf535f27731c974343645a3985328" or
9b2cf535f27731c974343645a3985328; one pair of surrounding double quotes is stripped.
Copy only if the source was modified after this time
Maps to the S3 x-amz-copy-source-if-modified-since header.
Use an ISO-8601 instant in UTC, for example 2024-06-13T12: 00: 00Z.
The copy fails with a precondition error when the source was not modified after this time.
Copy only if the source ETag does not match
Maps to the S3 x-amz-copy-source-if-none-match header.
The copy fails with a precondition error when the source ETag matches the given value.
Accepts both quoted and unquoted ETags, e.g. "9b2cf535f27731c974343645a3985328" or
9b2cf535f27731c974343645a3985328; one pair of surrounding double quotes is stripped.
Copy only if the source was not modified after this time
Maps to the S3 x-amz-copy-source-if-unmodified-since header.
Use an ISO-8601 instant in UTC, for example 2024-06-13T12: 00: 00Z.
The copy fails with a precondition error when the source was modified after this time.
The specific version of the object
region string
MinIO region with which the SDK should communicate
secretKeyId string
Secret Key Id for authentication
ssl
SSL/TLS configuration options
io.kestra.core.http.client.configurations.SslOptions
Whether to disable checking of the remote SSL certificate.
Only applies if no trust store is configured. Note: This makes the SSL connection insecure and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.
to
The destination bucket and key
io.kestra.plugin.minio.Copy-CopyObject
The bucket name
The bucket key
Outputs
bucket string
The bucket name
key string
The object key
versionId string
The version of the object