N8N Tools - S3 Enhanced icon

N8N Tools - S3 Enhanced

Enhanced S3 operations with presigned URLs, multipart upload, and advanced features

Overview

The node "N8N Tools - S3 Enhanced" provides a comprehensive set of operations to interact with S3-compatible object storage services. It supports advanced features such as generating presigned URLs and POSTs for secure temporary access, multipart uploads for large files, bucket and object management, and configuration of bucket policies, notifications, lifecycle rules, and more.

This node is beneficial in scenarios where users need to automate or integrate complex S3 workflows without writing custom code. For example:

  • Generating presigned URLs to allow temporary access to private objects.
  • Uploading large files using multipart upload to improve reliability.
  • Managing bucket configurations like CORS, lifecycle, encryption, and notifications programmatically.
  • Copying or deleting objects within buckets.
  • Querying object content using SQL expressions.

Specifically, the Put Bucket Notification operation allows setting or updating the notification configuration on an S3 bucket, enabling event-driven workflows triggered by bucket events (e.g., object creation).

Properties

Name Meaning
Bucket Name Name of the S3 bucket where the operation will be performed.
Notification Configuration JSON object defining the bucket's notification settings, e.g., topic configurations, queue configs.

For the Put Bucket Notification operation, the relevant properties are:

Name Meaning
Bucket Name The target S3 bucket to update the notification configuration.
Notification Configuration A JSON string representing the notification configuration. Example: {"TopicConfigurations":[{"Id":"id1","TopicArn":"arn:aws:sns:us-east-1:123456789012:topic","Events":["s3:ObjectCreated:*"]}]}

Output

The output JSON object for the Put Bucket Notification operation includes:

  • bucket: The name of the bucket updated.
  • notificationConfiguration: The parsed JSON object of the notification configuration that was applied.
  • message: Confirmation message indicating successful update, e.g., "Bucket notification updated successfully".
  • operation: The operation name (putBucketNotification).
  • timestamp: ISO timestamp when the operation was executed.
  • success: Boolean flag indicating success (true).

Example output JSON snippet:

{
  "bucket": "my-bucket-name",
  "notificationConfiguration": {
    "TopicConfigurations": [
      {
        "Id": "id1",
        "TopicArn": "arn:aws:sns:us-east-1:123456789012:topic",
        "Events": ["s3:ObjectCreated:*"]
      }
    ]
  },
  "message": "Bucket notification updated successfully",
  "operation": "putBucketNotification",
  "timestamp": "2024-06-01T12:00:00.000Z",
  "success": true
}

The node does not output binary data for this operation.

Dependencies

  • Requires an S3-compatible service endpoint with valid credentials (access key ID, secret access key, optional session token).
  • The node uses AWS SDK v3 clients internally to communicate with the S3 API.
  • Proper permissions must be granted to the credentials used to modify bucket notification configurations.
  • No additional environment variables are required beyond the configured credentials.

Troubleshooting

  • Invalid JSON format: If the notification configuration JSON is malformed, the node throws an error "Invalid notification configuration JSON format". Ensure the JSON is correctly formatted before input.
  • Access Denied: If the credentials lack permission to put bucket notification, the node will throw an access denied error. Verify IAM policies or equivalent permissions.
  • Bucket Not Found: If the specified bucket does not exist or is inaccessible, the operation will fail. Confirm the bucket name and region.
  • Network/Endpoint Issues: Connection errors may occur if the endpoint URL is incorrect or unreachable.
  • General Errors: Other AWS SDK errors will be surfaced with their messages; review these for troubleshooting.

If the node is set to continue on failure, errors will be returned in the output JSON with success: false and an error message.

Links and References

Discussion