For the complete documentation index, see llms.txt. This page is also available as Markdown.

UploadObject

Upload objects to AWS S3 Bucket.

Task version: 3.4.0

Required Frends version: 5.7+

Required .NET version: 8.0

Compatible Agents: Crossplatform

Task Parameters

Name
Description

SourceDirectory : String

Source directory.

Default: - Example: c:\temp, \network\folder

FileMask : String

Windows-style filemask. Empty field = all objects ().

Only one object will be uploaded when using pre-signed URL. Consider using .zip (for example) when uploading multiple objects at the same time.

Default: Example: . , ?file.*, foo*.txt

TargetDirectory : String

AWS S3 root directory. If the directory does not exist, it will be created.

Default: - Example: directory/

BucketName : String

AWS S3 bucket's name.

Default: - Example: Bucket

UploadFromCurrentDirectoryOnly : Boolean

Set to true to upload object(s) from the current directory only.

Default: - Example: false

PreserveFolderStructure : Boolean

Set to true to create subdirectories to S3 bucket.

Default: - Example: false

DeleteSource : Boolean

Delete local source object(s) after upload.

Default: - Example: false

Name
Description

AuthenticationMethod : AuthenticationMethod

Authentication method to use when connecting to AWS S3 bucket. Options are pre-signed URL, or AWS Access Key ID+AWS Secret Access Key.

Possible values:

  • AwsCredentials: Authentication method to use when connecting to AWS S3 bucket. Options are pre-signed URL, or AWS Access Key ID+AWS Secret Access Key.

  • PreSignedUrl: Authentication method to use when connecting to AWS S3 bucket. Options are pre-signed URL, or AWS Access Key ID+AWS Secret Access Key.

Default: 0 Example: PreSignedURL

🗝PreSignedUrl : String

A pre-signed URL allows you to grant temporary access to users who don't have permission to directly run AWS operations in your account.

Enabled when using PreSignedURL.

Default: - Example: "https://bucket.s3.region.amazonaws.com/object/file.txt?X-Amz-Expires=120X-Amz-Algorithm...

UseMultipartUpload : Boolean

Use Multipart upload?

This is a method used to asynchronously initiate a multipart upload for a large object (file size over 5 GB) to Amazon S3.

Multipart upload breaks the object into smaller parts, which are uploaded independently in parallel.

Default: True Example: true

🗝AwsAccessKeyId : String

AWS Access Key ID. Enabled when using AWSCredentials.

Default: - Example: AKIAQWERTY7NJ5Q7NZ6Q

🗝AwsSecretAccessKey : String

AWS Secret Access Key. Enabled when using AWSCredentials.

Default: - Example: TVh5hgd3uGY/2CqH+Kkrrg3dadbXLsYe0jC3h+WD

Region : Region

AWS S3 bucket's region. Enabled when using AWSCredentials.

Possible values:

  • AfSouth1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApEast1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApNortheast1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApNortheast2: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApNortheast3: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApSouth1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApSoutheast1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • ApSoutheast2: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • CaCentral1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • CnNorth1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • CnNorthWest1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • EuCentral1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • EuNorth1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • EuSouth1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • EuWest1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • EuWest2: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • EuWest3: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • MeSouth1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • SaEast1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • UsEast1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • UsEast2: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • UsWest1: AWS S3 bucket's region. Enabled when using AWSCredentials.

  • UsWest2: AWS S3 bucket's region. Enabled when using AWSCredentials.

Default: - Example: EuCentral1

ReturnListOfObjectKeys : Boolean

Return object keys from S3 in prefix/filename-format. Enabled when using AWSCredentials.

Default: - Example: false

Overwrite : Boolean

Set to true to overwrite object(s) with the same path and name (object key). Enabled when using AWSCredentials.

Default: - Example: false

GatherDebugLog : Boolean

Whether to gather AWS SDK debug log.

Please note that AWS SDK logging is not thread-safe and can pollute log output for tasks that run in parallel.

It is recommended to disable debug logging in production.

Default: False Example: false

PartSize : Int64

Specifies the size (in MB) of individual parts into which large files are divided when Connection.UseMultipartUpload = true.

Each part is limited to a minimum of 5 MB and a maximum of 5 TB in Amazon S3.

Recommended part sizes typically range from 10 MB to 100 MB for optimal performance.

Default: 10 Example: 10

UseAcl : Boolean

Enable/disable an AWS S3 access control list.

Not supported when using multipart upload (Connection.UseMultipartUpload = true).

Default: False Example: false

Acl : ACLs

Access control list. Enabled when UseACL is true.

Possible values:

  • Private: Access control list. Enabled when UseACL is true.

  • PublicRead: Access control list. Enabled when UseACL is true.

  • PublicReadWrite: Access control list. Enabled when UseACL is true.

  • AuthenticatedRead: Access control list. Enabled when UseACL is true.

  • BucketOwnerRead: Access control list. Enabled when UseACL is true.

  • BucketOwnerFullControl: Access control list. Enabled when UseACL is true.

  • LogDeliveryWrite: Access control list. Enabled when UseACL is true.

Default: - Example: Private

Name
Description

ThrowErrorIfNoMatch : Boolean

Throw error if there are no object(s) in the path matching the filemask.

Default: - Example: false

ThrowErrorOnFailure : Boolean

Throw error on failure.

Default: True Example: true

ErrorMessageOnFailure : String

Error message to display on failure.

Default: - Example: -

Task Result

Name
Description

Success : Boolean

Upload complete. Example: true

Objects : List<String>

Uploaded Object. Example: {C:\temp\ExampleFile.txt}, {temp\ExampleFile.txt}

DebugLog : String

Debug log of file upload. Example: EnvironmentVariableInternalConfiguration 1|2023-02-06T08:52:17.618Z|INFO|The environment variable AWS_ENABLE_ENDPOINT_DISCOVERY was not set with a value...

Error : Error

Error information if upload failed. Example: { Message: "The specified bucket does not exist", AdditionalInfo: AmazonS3Exception }

Task Changelog

Changelog for Task Frends.AmazonS3.UploadObject.

[3.4.0] - 2026-07-21

Changed

  • The default value of ThrowErrorOnFailure in Options is now true (was false). When adding this task to a new integration, it will throw an exception on failure by default. Existing integrations are not affected since the value is stored per-configuration.

Fixed

  • Improved internal documentation for better discoverability in the Frends task catalog.

[3.3.0] - 2026-04-21

Fixed

  • Fixed missing BucketName/Key in abort cleanup, simplified loop to a single abort call, added throw to stop swallowing exceptions and set default multipart part size to 10 MB.

[3.2.0] - 2025-12-29

Changed

  • Updated AWS SDK version.

[3.1.0] - 2025-10-17

Fixed

  • Fixed TargetDirectory to handle trailing slash.

[3.0.0] - 2025-07-23

  • [Breaking] Renamed FilePath to SourceDirectory in Input class for better clarity

  • [Breaking] Renamed S3Directory to TargetDirectory in Input class for consistency

  • [Breaking] Moved BucketName from Connection to Input class as it's essential for task function

  • [Breaking] Moved UploadFromCurrentDirectoryOnly from Connection to Input class

  • [Breaking] Moved PreserveFolderStructure from Connection to Input class

  • [Breaking] Moved DeleteSource from Connection to Input class

  • [Breaking] Renamed AWSCredentials to AwsCredentials in Connection class following PascalCase conventions

  • [Breaking] Renamed PreSignedURL to PreSignedUrl in Connection class following PascalCase conventions

  • [Breaking] Moved PartSize from Input to Connection class as it's connection-related

  • [Breaking] Moved and renamed UseACL to UseAcl in Connection class following PascalCase conventions

  • [Breaking] Moved and renamed ACL to Acl in Connection class following PascalCase conventions

  • [Breaking] Created new Options class with standard ThrowErrorOnFailure and ErrorMessageOnFailure properties

  • [Breaking] Moved ThrowErrorIfNoMatch from Connection to Options class

  • [Breaking] Renamed UploadedObjects to Objects in Result class for consistency

  • [Breaking] Task method signature now follows standard pattern: Input, Connection, Options parameters

[2.0.0] - 2025-05-21

Changed

  • Updated AWS SDK to version 4.0.0.5

  • Changed the logging logic to use custom logger

Added

  • [Breaking]Added GatherDebugLog option to allow disabling the DebugLog, false by default

    • By default, the gathering debug log is now disabled.

    • To replicate the previous task behaviour set GatherDebugLog parameter to true

[1.3.0] - 2025-03-13

Fixed

  • Fixed issue where ThrowErrorIfNoMatch was not correctly handled. Now, no error is thrown if set to false, and an error is thrown if set to true when no files match."

[1.2.0] - 2023-08-02

Added

  • Added multipart upload feature, which allows transferring files larger than 5GB.

[1.1.1] - 2023-06-13

Changed

  • Connection.ThrowExceptionOnErrorResponse documentation update.

  • Improved exception handling.

[1.1.0] - 2023-02-07

Changed

  • Task returns an object instead of list.

Added

  • Result.Success to indicate that operation was completed without errors.

  • Result.DebugLog to contain log of each operation.

  • Connection.ThrowExceptionOnErrorResponse to choose whether an error throws an exception or is logged to Result.DebugLog.

[1.0.0] - 2022-05-05

Added

  • Initial implementation

Last updated

Was this helpful?