Upload Upload

yaml
type: "io.kestra.plugin.aws.s3.Upload"

Upload a file to a S3 bucket.

Examples

yaml
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:
  • 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 files regExp: .*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?