mirror of
https://github.com/langgenius/dify-plugins.git
synced 2026-07-22 01:55:36 -04:00
[Plugin Request]: Fileupload plugin #410
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @gzmud on GitHub (Dec 9, 2025).
Plugin Name
SFTPUpload
Function Description
I am requesting the development of a dedicated plugin for Dify that enables automatic upload of files (either uploaded by users or generated by Dify workflows) to a specified SFTP server. This plugin will address the need for centralized file storage, long-term archiving, and cross-system file sharing for Dify-generated or user-submitted content.
Use Case Scenarios
User-Submitted File Archiving: When a user uploads files (such as documents, images, or datasets) during Dify workflow interactions, the plugin automatically syncs these files to a preconfigured SFTP server for secure storage and future retrieval.
Workflow-Generated File Distribution: For files produced by Dify workflows (e.g., report exports, processed datasets, or AI-generated documents), the plugin ensures immediate upload to SFTP, allowing other business systems (e.g., ERP, CRM) that integrate with the same SFTP to access the files in real time.
Compliance and Backup Requirements: Organizations with strict data retention policies can use this plugin to back up Dify-related files to SFTP servers that meet compliance standards (e.g., GDPR, HIPAA), avoiding data loss risks from local storage.
Core Functional Requirements
File Source CoverageCapture user-uploaded files in Dify conversations/workflows.
Capture files generated by workflow nodes (e.g., file export nodes, AI content generation nodes that output file formats).
SFTP Configuration FlexibilitySupport configuration of basic SFTP connection parameters: server address, port, username, password (or SSH key authentication for enhanced security).
Allow setting a target directory on the SFTP server (supporting fixed paths or dynamic paths based on workflow metadata, e.g., workflow ID, user ID, timestamp).
Upload Trigger MechanismsReal-time trigger: Upload files immediately upon completion of user upload or file generation in the workflow.
Batch trigger (optional): Support scheduled batch upload for scenarios with high file volume.
File Processing and IntegrityPreserve original file names, formats, and metadata (e.g., upload time, file size) during upload.
Implement file integrity checks (e.g., MD5 verification) to ensure files are not corrupted during transmission.
Status Feedback and LoggingReturn clear upload status (success/failure) to the Dify workflow, enabling conditional branching (e.g., sending a notification if upload fails).
Log detailed upload records (including file path, SFTP server info, timestamp, and error messages if applicable) to facilitate troubleshooting.
Error HandlingHandle SFTP connection failures (e.g., server unreachable, authentication errors) with retry mechanisms (configurable retry count and interval).
Support fallback strategies for failed uploads (e.g., local temporary storage and re-upload when the connection is restored).
Technical Requirements
Compatibility: Support the latest stable version of Dify and mainstream SFTP server software (e.g., OpenSSH, ProFTPD).
Security: Encrypt sensitive SFTP credentials (e.g., passwords, SSH keys) in Dify's configuration storage to prevent plaintext exposure.
Performance: Ensure minimal impact on Dify workflow execution speed, even when processing large files (support chunked upload for files larger than 100MB).
Additional Notes
If possible, the plugin should be integrated into Dify's plugin marketplace for easy installation and management. It would also be beneficial to support variable substitution in the SFTP target path (e.g., using {{workflow_id}} or {{user_email}} to dynamically generate subdirectories), which enhances adaptability to different business scenarios.
Thank you for considering this feature request. Please let me know if additional details or clarification are needed.
Official Website URL
No response