Amazon S3

Provides integration with Amazon S3 using AWS Signature Version 4 for bucket discovery and single-object file operations.

Revision History

0.0.0.4 - Initial release.

Connection

Create an Amazon S3 Connection so the Node can sign requests with AWS credentials and optionally supply a default bucket.

Property Type Description
Access Key String AWS access key ID used for request signing.
Secret Key Masked AWS secret access key used for request signing.
Session Token Masked Optional AWS session token required when the credentials come from STS or an assumed role.
Region Name String Default AWS Region used for S3 requests.
Bucket Name String Optional default bucket name used when methods omit Bucket Name.

Setup Notes

  • Create an AWS identity with the S3 permissions your Workflow needs. Typical permissions for this Node are s3:ListAllMyBuckets, s3:ListBucket, s3:GetObject, s3:PutObject, and s3:DeleteObject.
  • Enter a Region Name even if you also enter a default Bucket Name.
  • Enter a Session Token when you use temporary AWS credentials. This Node does not refresh AWS credentials for you.
  • Enter a default Bucket Name on the Connection if you want object methods to use one bucket by default.
  • Test the Connection after you configure it. The connection test performs a bucket-list call, so the credentials must be able to list buckets.

Methods

This Node exposes methods for common bucket and single-object operations on general-purpose Amazon S3 buckets.

ListBuckets

Use this method to return the buckets available to the configured AWS credential.

Parameter Type Description
Connection Connection Amazon S3 Connection details including AWS credentials and the default Region.
Return Type Description
Buckets Array One row per bucket. See the Bucket Properties table below.

Bucket Properties

Property Type Description
name String Bucket name.
bucketRegion String AWS Region for the bucket, when Amazon S3 returns it.
creationDate DateTime Date and time when the bucket was created, when available.
bucketArn String Bucket ARN, when available.

HeadBucket

Use this method to validate one bucket and return normalized bucket metadata such as the resolved Region.

Parameter Type Description
Connection Connection Amazon S3 Connection details including AWS credentials and the default Region.
Bucket Name String Bucket name to validate. If you leave this blank, the Node uses the default Bucket Name from the Connection.
Return Type Description
Bucket Object One row with normalized bucket metadata. See the Bucket Properties table below.

Bucket Properties

Property Type Description
bucketName String Bucket name that was validated.
bucketRegion String Resolved AWS Region for the bucket, when Amazon S3 returns it.
exists Boolean Indicates whether Amazon S3 definitively confirmed the bucket exists. On a confirmed missing-bucket response, this value is false.
accessPointAlias Boolean Indicates whether the bucket was addressed through an access point alias, when Amazon S3 returns that value.

ListObjects

Use this method to list objects in one bucket. You can optionally limit the results to a key prefix.

Parameter Type Description
Connection Connection Amazon S3 Connection details including AWS credentials and the default Region.
Bucket Name String Bucket name to query. If you leave this blank, the Node uses the default Bucket Name from the Connection.
Prefix String Optional key prefix used to limit the returned objects.
Return Type Description
Objects Array One row per object. See the Object Properties table below.

Object Properties

Property Type Description
bucketName String Bucket that contains the object.
key String Full object key.
size Integer Object size in bytes.
eTag String Entity tag returned by Amazon S3, when available.
lastModified DateTime Date and time when the object was last modified, when available.
storageClass String Storage class for the object, when Amazon S3 returns it.

DownloadObject

Use this method to download one object as a stream.

Parameter Type Description
Connection Connection Amazon S3 Connection details including AWS credentials and the default Region.
Key String Exact object key to download.
Bucket Name String Bucket name containing the object. If you leave this blank, the Node uses the default Bucket Name from the Connection.
Return Type Description
Content Stream The downloaded object content stream.

UploadObject

Use this method to upload one stream to a bucket as a single object.

Parameter Type Description
Connection Connection Amazon S3 Connection details including AWS credentials and the default Region.
Content Stream Binary content stream to upload.
Key String Exact object key to create or replace.
Bucket Name String Bucket name that receives the uploaded object. If you leave this blank, the Node uses the default Bucket Name from the Connection.
Content Type String Optional content type stored with the uploaded object.
Return Type Description
Object Object One row with normalized write metadata. See the Object Properties table below.

Object Properties

Property Type Description
bucketName String Bucket that received the uploaded object.
key String Full object key that was created or replaced.
eTag String Entity tag returned by Amazon S3, when available.
versionId String Object version ID, when bucket versioning returns one.
deleteMarker Boolean Delete-marker state returned by Amazon S3, when available.

DeleteObject

Use this method to delete one object from a bucket.

Parameter Type Description
Connection Connection Amazon S3 Connection details including AWS credentials and the default Region.
Key String Exact object key to delete.
Bucket Name String Bucket name containing the object. If you leave this blank, the Node uses the default Bucket Name from the Connection.
Return Type Description
Object Object One row with normalized delete metadata. See the Object Properties table below.

Object Properties

Property Type Description
bucketName String Bucket that contained the deleted object.
key String Full object key that was deleted.
eTag String Entity tag returned by Amazon S3, when available.
versionId String Object version ID returned by Amazon S3, when available.
deleteMarker Boolean Indicates whether the delete created or referenced a delete marker, when Amazon S3 returns that value.

Usage Notes

  • JSON-returning methods include the standard Flowgear response fields status, statusMessage, and errorMessage.
  • ListBuckets emits one row per bucket.
  • ListObjects emits one row per object and handles S3 pagination internally. You do not supply continuation tokens.
  • HeadBucket returns bucket context on failures. If Amazon S3 definitively reports that the bucket does not exist, the response sets exists to false.
  • DownloadObject returns a stream instead of JSON rows. If Amazon S3 returns an error, the Node raises that error instead of returning a response row.
  • If you omit Bucket Name on object methods, the Node uses the default Bucket Name from the Connection.

Known Issues

  • This first release supports general-purpose Amazon S3 buckets only.
  • Delimiter-based pseudo-folder browsing is not supported.
  • Multipart upload is not supported.
  • Version-specific delete is not supported.