Upload
Upload a file to a S3 bucket.
type: "io.kestra.plugin.aws.s3.Upload"
Upload a FILE input to S3
id: aws_s3_upload
namespace: company.team
inputs:
- id: bucket
type: STRING
defaults: my-bucket
- id: myfile
type: FILE
tasks:
- id: upload
type: io.kestra.plugin.aws.s3.Upload
region: "{{ secret('AWS_DEFAULT_REGION') }}"
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
from: "{{ inputs.myfile }}"
bucket: "{{ inputs.bucket }}"
key: "path/to/file"
Download a file and upload it to S3
id: upload_file_to_s3
namespace: company.team
inputs:
- id: bucket
type: STRING
defaults: my-bucket
- id: file_url
type: STRING
defaults: https://wri-dataportal-prod.s3.amazonaws.com/manual/global_power_plant_database_v_1_3.zip
tasks:
- id: download_file
type: io.kestra.plugin.core.http.Download
uri: "{{ inputs.file_url }}"
- id: upload_to_s3
type: io.kestra.plugin.aws.s3.Upload
from: "{{ outputs.download_file.uri }}"
key: powerplant/global_power_plant_database.zip
bucket: "{{ inputs.bucket }}"
region: "{{ secret('AWS_DEFAULT_REGION') }}"
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
YES
The S3 bucket name.
YES
The file(s) to upload.
Can be a single file, a list of files or json array.
YES
The key where to upload the file.
a full key (with filename) or the directory path if from is multiple files.
YES
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.
YES
The canned ACL to apply to the object.
YES
Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).
Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
YES
Can be used to specify caching behavior along the request/response chain.
YES
The checksum data integrity check to verify that the data received is the same data that was originally sent.
Must be used in pair with checksumAlgorithm
to defined the expect algorithm of these values
YES
CRC32
CRC32_C
SHA1
SHA256
CRC64_NVME
UNKNOWN_TO_SDK_VERSION
Indicates the algorithm used to create the checksum for the object when using the SDK.
YES
false
This property will use the AWS S3 DefaultAsyncClient instead of the S3CrtAsyncClient, which maximizes compatibility with S3-compatible services but restricts uploads and downloads to 2GB. For some S3 endpoints such as CloudFlare R2, you may need to set this value to true
.
YES
Specifies presentational information for the object.
YES
Specifies what content encodings have been applied to the object.
And thus, what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
YES
The language the content is in.
YES
The size of the body in bytes.
This parameter is useful when the size of the body cannot be determined automatically.
YES
A standard MIME type describing the format of the contents.
YES
The endpoint with which the SDK should communicate.
This property allows you to use a different S3 compatible storage backend.
YES
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).
YES
The date and time after which the object is no longer cacheable.
YES
Force path style access.
Must only be used when compatibilityMode
is enabled.
YES
A map of metadata to store with the object in S3.
YES
ON
OFF
UNKNOWN_TO_SDK_VERSION
Specifies whether a legal hold will be applied to this object.
YES
GOVERNANCE
COMPLIANCE
UNKNOWN_TO_SDK_VERSION
The Object Lock mode that you want to apply to this object.
YES
The date and time when you want this object's Object Lock to expire.
YES
AWS region with which the SDK should communicate.
YES
Sets the value of the RequestPayer property for this object.
YES
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.
YES
AES256
AWS_KMS
AWS_KMS_DSSE
UNKNOWN_TO_SDK_VERSION
The server-side encryption algorithm used when storing this object in Amazon S3.
For example, AES256, aws: kms, aws: kms: dsse
YES
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.
YES
STANDARD
REDUCED_REDUNDANCY
STANDARD_IA
ONEZONE_IA
INTELLIGENT_TIERING
GLACIER
DEEP_ARCHIVE
OUTPOSTS
GLACIER_IR
SNOW
EXPRESS_ONEZONE
UNKNOWN_TO_SDK_VERSION
If you don't specify, S3 Standard is the default storage class. Amazon S3 supports other storage classes.
YES
The AWS STS endpoint with which the SDKClient should communicate.
YES
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.
YES
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.
YES
PT15M
duration
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.
YES
AWS STS Session name.
This property is only used when an stsRoleArn
is defined.
YES
The tag-set for the object.
The version of the object.
YES
The S3 bucket where to download the file.
YES
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.
YES
Enable compatibility mode.
Use it to connect to S3 bucket with S3 compatible services that didn't support the new transport client.
YES
A delimiter is a character you use to group keys.
YES
The EncodingType property for this object.
YES
The endpoint with which the SDK should communicate.
This property allows you to use a different S3 compatible storage backend.
YES
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).
YES
BOTH
FILES
DIRECTORY
BOTH
The type of objects to filter: files, directory, or both.
YES
Force path style access.
Must only be used when compatibilityMode
is enabled.
YES
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.
YES
1000
Sets the maximum number of keys returned in the response.
By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.
YES
Limits the response to keys that begin with the specified prefix.
YES
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
YES
AWS region with which the SDK should communicate.
YES
Sets the value of the RequestPayer property for this object.
YES
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.
YES
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.
YES
The AWS STS endpoint with which the SDKClient should communicate.
YES
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.
YES
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.
YES
PT15M
duration
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.
YES
AWS STS Session name.
This property is only used when an stsRoleArn
is defined.