Skip to content

S3 Compatible Storage

This module allows performing storage operations with any service compatible with Amazon’s S3 protocol. It works with providers like Linode Object Storage, DigitalOcean Spaces, MinIO, Wasabi, Backblaze B2, Cloudflare R2 and any other service that implements the S3 API.

The implementation is identical to the AWS S3 module but with support for custom endpoints and the forcePathStyle option enabled by default for compatibility. It supports: list buckets, list objects, download, upload (with ACL support), delete, get metadata, copy and generate pre-signed URLs.

ParameterTypeRequiredDescription
credentials_idcredentialsYesS3-compatible storage account
operationselectYesOperation: listBuckets, listObjects, getObject, putObject, deleteObject, headObject, copyObject, getPresignedUrl
buckettextConditionalBucket/container name
keytextConditionalObject key/path
prefixtextNoPrefix to filter (folder)
maxKeysnumberNoMaximum objects to list (1-1000, default: 100)
returnAsBase64booleanNoReturn as Base64 (for binaries)
bodyKeytextNoField in input data with the content (default: fileContent)
contentTypeselectNoFile MIME type
isBase64booleanNoContent is Base64 encoded
aclselectNoPermissions: private, public-read, public-read-write, authenticated-read
sourceKeytextConditionalSource object key (for copying)
destinationKeytextConditionalDestination key (for copying)
destinationBuckettextNoDestination bucket (empty = same bucket)
expiresInselectNoURL expiration: 300 to 604800 seconds
outputKeytextNoKey where to store the result

Service type: s3_compatible. Stored in the servicecredentials table.

Configuration fields:

  • endpoint: Service endpoint URL (e.g.: https://us-east-1.linodeobjects.com)
  • accessKeyId: Service Access Key
  • secretAccessKey: Service Secret Key
  • region: Service region (default: us-east-1)
  • forcePathStyle: Use path-style (default: true, recommended for compatibility)
{
"nextModule": "siguiente_modulo",
"data": {
"objects": [
{
"key": "archivos/documento.pdf",
"size": 98765,
"lastModified": "2025-01-15T10:30:00.000Z",
"etag": "\"def456\""
}
],
"folders": ["archivos/", "backups/"],
"isTruncated": false
},
"_meta_": {
"operation": "listObjects",
"bucket": "mi-contenedor",
"service": "s3_compatible"
}
}
{
"credentials_id": 1,
"operation": "putObject",
"bucket": "mi-contenedor",
"key": "imagenes/foto.jpg",
"bodyKey": "fileContent",
"contentType": "image/jpeg",
"isBase64": true,
"acl": "public-read"
}
  • S3 protocol via @aws-sdk/client-s3 with custom endpoint
  • Compatible with: Linode, DigitalOcean Spaces, MinIO, Wasabi, Backblaze B2, Cloudflare R2
  • Unlike the AWS S3 module, this module supports a custom endpoint and forcePathStyle
  • The ACL parameter allows controlling access permissions per object (not available on all providers)
  • forcePathStyle is enabled by default for maximum compatibility with S3 providers
  • Pre-signed URLs work with most S3-compatible providers
  • Some providers may not support all operations (e.g.: versioning, storage classes)
  • The continueOnError parameter allows the workflow to continue even if the operation fails
  • AWS S3 - Native Amazon S3 operations
  • Manage S3 - Simplified file management in S3