● Storage Upload

A node used to upload files to storage service and get public URL

Overview

Upload files to storage service and get public URL. Accepts file data from input nodes (as base64 or buffer) and handles the upload process, returning the URL and metadata for downstream processing.

When to Use

Use this node when you need to store files uploaded by users or generated by other nodes, making them accessible via public URLs. Essential for workflows that process user documents, generate reports, or need to share files between different parts of the system.

Parameters

  • fileData (required) - File data as buffer or base64 string, typically from an input node
    • Placeholder: "File data from input node (e.g., {{0.uploadedFile}})"
    • Examples: {{0.uploadedFile}}{{previousNode.result.fileBuffer}}
  • fileName (required) - Name for the uploaded file
    • Placeholder: "Name for the uploaded file"
    • Examples: "document.pdf", {{0.uploadedFile.name}}, "report-{{timestamp}}.xlsx"
  • contentType (optional) - MIME type of the file for proper handling
    • Default: "application/octet-stream"
    • Placeholder: "MIME type (e.g., image/png, application/pdf)"
    • Examples: "image/png", "application/pdf", {{0.uploadedFile.type}}
  • ttlMinutes (optional) - How long the file should be retained (in minutes) T- ype: number (min: 1)
    • Default: 100000000 (essentially permanent)
    • Examples: "1440", "100000000", "60"
  • directory (optional) - Optional directory path for organizing uploaded files
    • Placeholder: "Optional directory path for organization"
    • Examples: "uploads/documents", "user-files/{{userId}}", "temp"

Raw Usage Example

{
    name: "Upload User Document",
    description: "Storage Upload Node - upload a file from input and get URL",
    nodeId: "n",
    operationReference: {
        methodId: "storage_upload"
    },
    parameters: [
        { name: "fileData", value: "{{0.uploadedFile}}" }, // File from input node
        { name: "fileName", value: "{{0.uploadedFile.name}}" }, // Preserve original name
        { name: "contentType", value: "{{0.uploadedFile.type}}" }, // Preserve MIME type
        { name: "ttlMinutes", value: 100000000 }, // Keep file permanently  
        { name: "directory", value: "user-uploads" } // Organize in directory
    ]
}

Capabilities

  • Upload files from input node file fields
  • Support for base64 and buffer data formats
  • Configurable time-to-live (TTL) for temporary files
  • Directory organization for uploaded files
  • Returns public URL for immediate access
  • Preserves file metadata (size, content type)

Advanced Features

Automatic base64 decoding for browser uploads

  • Buffer handling for server-side file processing
  • Secure file naming with UUID generation
  • User-based file isolation and tracking
  • Integration with storage service API
  • Support for large file uploads

Result Access

{{nodeId.result.url}} - Public URL of uploaded file {{nodeId.result.fileName}} - Final stored filename {{nodeId.result.secret}} - Secret key for secure access {{nodeId.result.size}} - File size in bytes {{nodeId.result.contentType}} - MIME type of the file