Upload
type: "io.kestra.plugin.aws.s3.Upload"
Upload a file to a S3 bucket.
Examples
id: aws_s3_upload
namespace: company.team
inputs:
- id: myfile
type: FILE
tasks:
- id: upload
type: io.kestra.plugin.aws.s3.Upload
accessKeyId: "<access-key>"
secretKeyId: "<secret-key>"
region: "eu-central-1"
from: "{{ inputs.myfile }}"
bucket: "my-bucket"
key: "path/to/file"
Properties
bucket
- Type: string
- Dynamic: ✔️
- Required: ✔️
The S3 bucket name.
from
- Type:
- List
- string
- Dynamic: ✔️
- Required: ✔️
The file(s) to upload.
Can be a single file, a list of files or json array.
key
- Type: string
- Dynamic: ✔️
- Required: ✔️
The key where to upload the file.
a full key (with filename) or the directory path if from is multiple files.
accessKeyId
- Type: string
- Dynamic: ✔️
- Required: ❌
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.
acl
- Type: string
- Dynamic: ✔️
- Required: ❌
The canned ACL to apply to the object.
bucketKeyEnabled
- Type: boolean
- Dynamic: ❌
- Required: ❌
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.
cacheControl
- Type: string
- Dynamic: ✔️
- Required: ❌
Can be used to specify caching behavior along the request/response chain.
checksum
- Type: string
- Dynamic: ✔️
- Required: ❌
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
checksumAlgorithm
- Type: string
- Dynamic: ❌
- Required: ❌
- Possible Values:
CRC32
CRC32_C
SHA1
SHA256
UNKNOWN_TO_SDK_VERSION
Indicates the algorithm used to create the checksum for the object when using the SDK.
compatibilityMode
- Type: boolean
- Dynamic: ❌
- Required: ❌
- Default:
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
.
contentDisposition
- Type: string
- Dynamic: ✔️
- Required: ❌
Specifies presentational information for the object.
contentEncoding
- Type: string
- Dynamic: ✔️
- Required: ❌
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.
contentLanguage
- Type: string
- Dynamic: ✔️
- Required: ❌
The language the content is in.
contentLength
- Type: integer
- Dynamic: ❌
- Required: ❌
The size of the body in bytes.
This parameter is useful when the size of the body cannot be determined automatically.
contentType
- Type: string
- Dynamic: ✔️
- Required: ❌
A standard MIME type describing the format of the contents.
endpointOverride
- Type: string
- Dynamic: ✔️
- Required: ❌
The endpoint with which the SDK should communicate.
This property allows you to use a different S3 compatible storage backend.
expectedBucketOwner
- Type: string
- Dynamic: ✔️
- Required: ❌
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).
expires
- Type: string
- Dynamic: ✔️
- Required: ❌
The date and time after which the object is no longer cacheable.
metadata
- Type: object
- SubType: string
- Dynamic: ✔️
- Required: ❌
A map of metadata to store with the object in S3.
objectLockLegalHoldStatus
- Type: string
- Dynamic: ❌
- Required: ❌
- Possible Values:
ON
OFF
UNKNOWN_TO_SDK_VERSION
Specifies whether a legal hold will be applied to this object.
objectLockMode
- Type: string
- Dynamic: ❌
- Required: ❌
- Possible Values:
GOVERNANCE
COMPLIANCE
UNKNOWN_TO_SDK_VERSION
The Object Lock mode that you want to apply to this object.
objectLockRetainUntilDate
- Type: string
- Dynamic: ✔️
- Required: ❌
**The date and time when you want this object's Object Lock to expire. **
region
- Type: string
- Dynamic: ✔️
- Required: ❌
AWS region with which the SDK should communicate.
requestPayer
- Type: string
- Dynamic: ✔️
- Required: ❌
Sets the value of the RequestPayer property for this object.
secretKeyId
- Type: string
- Dynamic: ✔️
- Required: ❌
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.
serverSideEncryption
- Type: string
- Dynamic: ❌
- Required: ❌
- Possible Values:
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
sessionToken
- Type: string
- Dynamic: ✔️
- Required: ❌
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.
storageClass
- Type: string
- Dynamic: ❌
- Required: ❌
- Possible Values:
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.
stsEndpointOverride
- Type: string
- Dynamic: ✔️
- Required: ❌
The AWS STS endpoint with which the SDKClient should communicate.
stsRoleArn
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ❌
- Required: ❌
- Default:
900.000000000
- Format:
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.
stsRoleSessionName
- Type: string
- Dynamic: ✔️
- Required: ❌
AWS STS Session name.
This property is only used when an
stsRoleArn
is defined.
tagging
- Type: object
- SubType: string
- Dynamic: ❌
- Required: ❌
The tag-set for the object.
Outputs
bucket
- Type: string
- Required: ❌
key
- Type: string
- Required: ❌
versionId
- Type: string
- Required: ❌
The version of the object.
Definitions
io.kestra.plugin.aws.s3.List
Properties
bucket
- Type: string
- Dynamic: ✔️
- Required: ✔️
The S3 bucket where to download the file.
accessKeyId
- Type: string
- Dynamic: ✔️
- Required: ❌
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.
compatibilityMode
- Type: boolean
- Dynamic: ✔️
- Required: ❌
delimiter
- Type: string
- Dynamic: ✔️
- Required: ❌
A delimiter is a character you use to group keys.
encodingType
- Type: string
- Dynamic: ✔️
- Required: ❌
The EncodingType property for this object.
endpointOverride
- Type: string
- Dynamic: ✔️
- Required: ❌
The endpoint with which the SDK should communicate.
This property allows you to use a different S3 compatible storage backend.
expectedBucketOwner
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ❌
- Required: ❌
- Default:
BOTH
- Possible Values:
FILES
DIRECTORY
BOTH
The type of objects to filter: files, directory, or both.
marker
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: integer
- Dynamic: ✔️
- Required: ❌
- Default:
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.
prefix
- Type: string
- Dynamic: ✔️
- Required: ❌
Limits the response to keys that begin with the specified prefix.
regexp
- Type: string
- Dynamic: ✔️
- Required: ❌
A regexp to filter on full key.
ex:
regExp: .*
to match all filesregExp: .*2020-01-0.\\.csv
to match files between 01 and 09 of january ending with.csv
region
- Type: string
- Dynamic: ✔️
- Required: ❌
AWS region with which the SDK should communicate.
requestPayer
- Type: string
- Dynamic: ✔️
- Required: ❌
Sets the value of the RequestPayer property for this object.
secretKeyId
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ✔️
- Required: ❌
The AWS STS endpoint with which the SDKClient should communicate.
stsRoleArn
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ✔️
- Required: ❌
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
- Type: string
- Dynamic: ❌
- Required: ❌
- Default:
900.000000000
- Format:
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.
stsRoleSessionName
- Type: string
- Dynamic: ✔️
- Required: ❌
AWS STS Session name.
This property is only used when an
stsRoleArn
is defined.
Was this page helpful?