AWS S3
Overview
The AWS S3 component provides a TO route allowing you to send a file, string or data to a specified S3 bucket.
General Note
The current functionality is very simplified but there is scope for more customization in the future.
Routes
FROM
TO
TO
Setup Headers
Header | Description | Optional | Default |
---|---|---|---|
Host | S3 bucket name | NO | EMPTY |
Target | The path within the bucket | YES | EMPTY |
FileName | THe target file name within the bucket | YES | EMPTY |
If you only use the setup headers then the assumed file type is text/plain
and the content of the message body is string.
Example
To("s3://kyameru-component-s3/test&FileName=banana.txt")
Message Headers
The large majority of options for the S3 object upload are set through message headers.
Header | Description | Optional | Default |
---|---|---|---|
S3StorageClass | Valid storage class for the object | YES | Assumes S3STANDARD |
S3Path | Path of the file (not including file name) to upload in the target bucket | Partial | Needs to be done either Setup header or here |
S3FileName | File name | Partial | Needs to be done either Setup header or here |
S3ContentType | Content type of target file | YES | text/plain |
FullSource | Full source of physical file to upload | YES | Only applicable if data type is set to File |
S3DataType | Data type to upload (String, Byte, File) | NO |
Setting Content For Upload
The message body serves as the source for both the File
and Byte
options for upload. If you wish to upload a file from disk then you need to set the FullSource
header to the full path of the file.
Outbound Messages
TO
The routable message outbound from the component is as follows:
Body
No modifications made from inbound message.
Headers
Header | Description | Immutable |
---|---|---|
S3VersionId | Version ID tag from uploaded file | Yes |
S3ETag | ETag from uploaded file | Yes |
S3Key | Key of uploaded file | Yes |
S3Bucket | Bucket name of uploaded file | Yes |
Future Works
Although the mechanism is very simplified currently and relies on a lot of the correct permissions being setup at source, there will be more work done on the component to allow things like encryption etc. This has been skipped so an MVP can be reached and this functionality will be revisited in the near future.