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
Source code: https://github.com/FrendsPlatform/Frends.AmazonS3
Task Parameters
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
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
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
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
ThrowErrorOnFailurein Options is nowtrue(wasfalse). 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
FilePathtoSourceDirectoryin Input class for better clarity[Breaking] Renamed
S3DirectorytoTargetDirectoryin Input class for consistency[Breaking] Moved
BucketNamefrom Connection to Input class as it's essential for task function[Breaking] Moved
UploadFromCurrentDirectoryOnlyfrom Connection to Input class[Breaking] Moved
PreserveFolderStructurefrom Connection to Input class[Breaking] Moved
DeleteSourcefrom Connection to Input class[Breaking] Renamed
AWSCredentialstoAwsCredentialsin Connection class following PascalCase conventions[Breaking] Renamed
PreSignedURLtoPreSignedUrlin Connection class following PascalCase conventions[Breaking] Moved
PartSizefrom Input to Connection class as it's connection-related[Breaking] Moved and renamed
UseACLtoUseAclin Connection class following PascalCase conventions[Breaking] Moved and renamed
ACLtoAclin Connection class following PascalCase conventions[Breaking] Created new Options class with standard
ThrowErrorOnFailureandErrorMessageOnFailureproperties[Breaking] Moved
ThrowErrorIfNoMatchfrom Connection to Options class[Breaking] Renamed
UploadedObjectstoObjectsin 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,
falseby defaultBy 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?

