[PR #1284] [MERGED] add new plugin volcengine_tos #1510

Closed
opened 2026-02-22 18:00:18 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/langgenius/dify-plugins/pull/1284
Author: @sawyer-shi
Created: 9/25/2025
Status: Merged
Merged: 10/22/2025
Merged by: @crazywoola

Base: mainHead: main-volcengine-tos-plugin


📝 Commits (10+)

  • 1da7a9b add a new plugin flow_map-0.0.1.difypkg
  • aff63fc Merge branch 'langgenius:main' into main
  • 7b1ec19 Add new plugin aliyun OSS
  • d28fd34 remove new plugin aliyun OSS file
  • 757552b add new plugin volcengine_tos
  • 6503e6d add new plugin volcengine_tos-0.0.1.difypkg【update code】
  • 1e9eeaf add new plugin volcengine_tos-0.0.1.difypkg【add batch upload files action】
  • 30953b6 add new plugin volcengine_tos-0.0.1.difypkg【update icon】
  • 6601b7a add new plugin volcengine_tos-0.0.1.difypkg【update icon】
  • 1922439 add new plugin volcengine_tos-0.0.1.difypkg【Optimize the directory hierarchy function】

📊 Changes

1 file changed (+0 additions, -0 deletions)

View changed files

sawyer-shi/volcengine_tos/volcengine_tos-0.0.1.difypkg (+0 -0)

📄 Description

Volcengine TOS Object Storage

A powerful Dify plugin providing seamless integration with Volcengine Torch Object Storage (TOS). Enables direct file uploads to Volcengine TOS and efficient file retrieval using URLs, with rich configuration options.

Version Information

  • Current Version: v0.0.1
  • Release Date: 2025-09-22
  • Compatibility: Dify Plugin Framework
  • Python Version: 3.12

Quick Start

  1. Download the volcengine_tos plugin from the Dify Marketplace.
  2. Configure your Volcengine TOS authorization information.
  3. After completing the above configuration, you can start using the plugin immediately.

Version History

  • v0.0.1 (2025-09-22): Initial release with file upload and retrieval capabilities, support for multiple directory structures and filename modes

Core Features

File Upload to TOS

  • Direct File Upload: Upload any file type directly to Volcengine TOS
  • Flexible Directory Structure: Multiple storage directory organization options
    • Flat structure (no_subdirectory)
    • Hierarchical date structure (yyyy_mm_dd_hierarchy)
    • Combined date structure (yyyy_mm_dd_combined)
  • Filename Customization: Control how filenames are stored in TOS
    • Use original filename
    • Append timestamp to original filename
  • Source File Tracking: Automatically captures and returns the original filename
  • Smart Extension Detection: Automatically determine file extensions based on content type

File Retrieval by URL

  • Direct Content Access: Retrieve file content directly using TOS URLs
  • Cross-Region Support: Works with all Volcengine TOS regions worldwide

Technical Advantages

  • Secure Authentication: Robust credential handling with support for HTTPS
  • Efficient Storage Management: Intelligent file organization options
  • Comprehensive Error Handling: Detailed error messages and status reporting
  • Multiple File Type Support: Works with all common file formats
  • Rich Parameter Configuration: Extensive options for customized workflows
  • Source File Tracking: Preserves original filename information

Requirements

  • Python 3.12
  • Volcengine TOS account with valid AccessKey credentials
  • Dify Platform access
  • Required Python packages (installed via requirements.txt)

Installation & Configuration

  1. Install the required dependencies:

    pip install -r requirements.txt
    
  2. Configure the plugin in Dify with the following parameters:

    • Endpoint: Your Volcengine TOS endpoint (e.g., tos-cn-beijing.volces.com)
    • Bucket Name: Your TOS bucket name
    • AccessKey ID: Your Volcengine AccessKey ID
    • AccessKey Secret: Your Volcengine AccessKey Secret
    • Use HTTPS: Whether to use HTTPS for TOS requests (default: true)

Usage

The plugin provides three powerful tools for interacting with Volcengine TOS:

1. Upload File to TOS (upload_file)

Dedicated tool for uploading files to Volcengine TOS.

  • Parameters:
    • file: The local file to upload (required)
    • directory: First-level directory under the bucket (required)
    • directory_mode: Optional directory structure mode (default: no_subdirectory)
      • no_subdirectory: Store directly in specified directory
      • yyyy_mm_dd_hierarchy: Store in date-based hierarchical structure
      • yyyy_mm_dd_combined: Store in combined date directory
    • filename: Optional custom filename for TOS storage
    • filename_mode: Optional filename composition mode (default: filename)
      • filename: Use original filename
      • filename_timestamp: Use original filename plus timestamp

2. Multi Upload Files to TOS (multi_upload_files)

Dedicated tool for uploading multiple files to Volcengine TOS.

  • Parameters:
    • files: The local files to upload (required, up to 10 files)
    • directory: First-level directory under the bucket (required)
    • directory_mode: Optional directory structure mode (default: no_subdirectory)
      • no_subdirectory: Store directly in specified directory
      • yyyy_mm_dd_hierarchy: Store in date-based hierarchical structure
      • yyyy_mm_dd_combined: Store in combined date directory
    • filename_mode: Optional filename composition mode (default: filename)
      • filename: Use original filename
      • filename_timestamp: Use original filename plus timestamp

3. Get File by URL (get_file_by_url)

Dedicated tool for retrieving files from Volcengine TOS using URLs.

  • Parameters:
    • file_url: The URL of the file in Volcengine TOS

Examples

Upload File

upload-01

Batch Upload Files

upload-02

Get File by URL

download-01 download-02

Notes

  • Ensure your TOS bucket has the correct permissions configured
  • The plugin requires valid Volcengine credentials with appropriate TOS access permissions
  • For very large files, consider using multipart upload functionality (not currently implemented)

Developer Information

  • Author: https://github.com/sawyer-shi
  • Source Code: https://github.com/sawyer-shi/dify-plugins-volcengine_tos
  • Email: sawyer36@foxmail.com
  • License: MIT License
  • Support: Through Dify platform and GitHub Issues

Ready to seamlessly integrate with Volcengine TOS?

Plugin Submission Form

1. Metadata

  • Plugin Author:
  • Plugin Name:
  • Repository URL:

2. Submission Type

  • New plugin submission
  • Version update for existing plugin

3. Description

4. Checklist

  • I have read and followed the Publish to Dify Marketplace guidelines
  • I have read and comply with the Plugin Developer Agreement
  • I confirm my plugin works properly on both Dify Community Edition and Cloud Version
  • I confirm my plugin has been thoroughly tested for completeness and functionality
  • My plugin brings new value to Dify

5. Documentation Checklist

Please confirm that your plugin README includes all necessary information:

  • Step-by-step setup instructions
  • Detailed usage instructions
  • All required APIs and credentials are clearly listed
  • Connection requirements and configuration details
  • Link to the repository for the plugin source code

6. Privacy Protection Information

Based on Dify Plugin Privacy Protection Guidelines:

Data Collection

Privacy Policy

  • I confirm that I have prepared and included a privacy policy in my plugin package based on the Plugin Privacy Protection Guidelines

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/langgenius/dify-plugins/pull/1284 **Author:** [@sawyer-shi](https://github.com/sawyer-shi) **Created:** 9/25/2025 **Status:** ✅ Merged **Merged:** 10/22/2025 **Merged by:** [@crazywoola](https://github.com/crazywoola) **Base:** `main` ← **Head:** `main-volcengine-tos-plugin` --- ### 📝 Commits (10+) - [`1da7a9b`](https://github.com/langgenius/dify-plugins/commit/1da7a9b8de020e2b634275b0f5b99dfffd12ee82) add a new plugin flow_map-0.0.1.difypkg - [`aff63fc`](https://github.com/langgenius/dify-plugins/commit/aff63fc5dc3bdb3888d0eeca96c9354a1c91869c) Merge branch 'langgenius:main' into main - [`7b1ec19`](https://github.com/langgenius/dify-plugins/commit/7b1ec19ae75e2295cfd3de65b46c7e40fb0ca8d1) Add new plugin aliyun OSS - [`d28fd34`](https://github.com/langgenius/dify-plugins/commit/d28fd34d3f0ddec63511b738fe6c2211aa322828) remove new plugin aliyun OSS file - [`757552b`](https://github.com/langgenius/dify-plugins/commit/757552bea2a4f8b57763761a2d867813c05decbb) add new plugin volcengine_tos - [`6503e6d`](https://github.com/langgenius/dify-plugins/commit/6503e6df394478b6db32ce4afe9a911059203998) add new plugin volcengine_tos-0.0.1.difypkg【update code】 - [`1e9eeaf`](https://github.com/langgenius/dify-plugins/commit/1e9eeafad3273b5a35f3a491a1d1e33775596f57) add new plugin volcengine_tos-0.0.1.difypkg【add batch upload files action】 - [`30953b6`](https://github.com/langgenius/dify-plugins/commit/30953b69592c1c5942b456e43f443c6c7116a573) add new plugin volcengine_tos-0.0.1.difypkg【update icon】 - [`6601b7a`](https://github.com/langgenius/dify-plugins/commit/6601b7a1dc1b38d4d13a4f14a0985189912080de) add new plugin volcengine_tos-0.0.1.difypkg【update icon】 - [`1922439`](https://github.com/langgenius/dify-plugins/commit/1922439266ddcae4820a306bb61f444f4f614bf6) add new plugin volcengine_tos-0.0.1.difypkg【Optimize the directory hierarchy function】 ### 📊 Changes **1 file changed** (+0 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `sawyer-shi/volcengine_tos/volcengine_tos-0.0.1.difypkg` (+0 -0) </details> ### 📄 Description # Volcengine TOS Object Storage A powerful Dify plugin providing seamless integration with Volcengine Torch Object Storage (TOS). Enables direct file uploads to Volcengine TOS and efficient file retrieval using URLs, with rich configuration options. ## Version Information - **Current Version**: v0.0.1 - **Release Date**: 2025-09-22 - **Compatibility**: Dify Plugin Framework - **Python Version**: 3.12 ## Quick Start 1. Download the `volcengine_tos` plugin from the Dify Marketplace. 2. Configure your Volcengine TOS authorization information. 3. After completing the above configuration, you can start using the plugin immediately. ### Version History - **v0.0.1** (2025-09-22): Initial release with file upload and retrieval capabilities, support for multiple directory structures and filename modes ## Core Features ### File Upload to TOS - **Direct File Upload**: Upload any file type directly to Volcengine TOS - **Flexible Directory Structure**: Multiple storage directory organization options - Flat structure (no_subdirectory) - Hierarchical date structure (yyyy_mm_dd_hierarchy) - Combined date structure (yyyy_mm_dd_combined) - **Filename Customization**: Control how filenames are stored in TOS - Use original filename - Append timestamp to original filename - **Source File Tracking**: Automatically captures and returns the original filename - **Smart Extension Detection**: Automatically determine file extensions based on content type ### File Retrieval by URL - **Direct Content Access**: Retrieve file content directly using TOS URLs - **Cross-Region Support**: Works with all Volcengine TOS regions worldwide ## Technical Advantages - **Secure Authentication**: Robust credential handling with support for HTTPS - **Efficient Storage Management**: Intelligent file organization options - **Comprehensive Error Handling**: Detailed error messages and status reporting - **Multiple File Type Support**: Works with all common file formats - **Rich Parameter Configuration**: Extensive options for customized workflows - **Source File Tracking**: Preserves original filename information ## Requirements - Python 3.12 - Volcengine TOS account with valid AccessKey credentials - Dify Platform access - Required Python packages (installed via requirements.txt) ## Installation & Configuration 1. Install the required dependencies: ```bash pip install -r requirements.txt ``` 2. Configure the plugin in Dify with the following parameters: - **Endpoint**: Your Volcengine TOS endpoint (e.g., tos-cn-beijing.volces.com) - **Bucket Name**: Your TOS bucket name - **AccessKey ID**: Your Volcengine AccessKey ID - **AccessKey Secret**: Your Volcengine AccessKey Secret - **Use HTTPS**: Whether to use HTTPS for TOS requests (default: true) ## Usage The plugin provides three powerful tools for interacting with Volcengine TOS: ### 1. Upload File to TOS (upload_file) Dedicated tool for uploading files to Volcengine TOS. - **Parameters**: - `file`: The local file to upload (required) - `directory`: First-level directory under the bucket (required) - `directory_mode`: Optional directory structure mode (default: `no_subdirectory`) - `no_subdirectory`: Store directly in specified directory - `yyyy_mm_dd_hierarchy`: Store in date-based hierarchical structure - `yyyy_mm_dd_combined`: Store in combined date directory - `filename`: Optional custom filename for TOS storage - `filename_mode`: Optional filename composition mode (default: `filename`) - `filename`: Use original filename - `filename_timestamp`: Use original filename plus timestamp ### 2. Multi Upload Files to TOS (multi_upload_files) Dedicated tool for uploading multiple files to Volcengine TOS. - **Parameters**: - `files`: The local files to upload (required, up to 10 files) - `directory`: First-level directory under the bucket (required) - `directory_mode`: Optional directory structure mode (default: `no_subdirectory`) - `no_subdirectory`: Store directly in specified directory - `yyyy_mm_dd_hierarchy`: Store in date-based hierarchical structure - `yyyy_mm_dd_combined`: Store in combined date directory - `filename_mode`: Optional filename composition mode (default: `filename`) - `filename`: Use original filename - `filename_timestamp`: Use original filename plus timestamp ### 3. Get File by URL (get_file_by_url) Dedicated tool for retrieving files from Volcengine TOS using URLs. - **Parameters**: - `file_url`: The URL of the file in Volcengine TOS ## Examples ### Upload File <img width="2066" height="1034" alt="upload-01" src="https://github.com/user-attachments/assets/36efab38-aaca-4a51-938c-26daa791f4a0" /> ### Batch Upload Files <img width="2040" height="736" alt="upload-02" src="https://github.com/user-attachments/assets/178410d5-bfc4-4b9a-83ac-1c7a12159323" /> ### Get File by URL <img width="2231" height="645" alt="download-01" src="https://github.com/user-attachments/assets/1bd2c648-a30b-45a3-9fed-d0ed362390b6" /> <img width="2131" height="564" alt="download-02" src="https://github.com/user-attachments/assets/9ebcdd32-efde-4908-b702-9eccfee66d44" /> ## Notes - Ensure your TOS bucket has the correct permissions configured - The plugin requires valid Volcengine credentials with appropriate TOS access permissions - For very large files, consider using multipart upload functionality (not currently implemented) ## Developer Information - **Author**: `https://github.com/sawyer-shi` - **Source Code**: `https://github.com/sawyer-shi/dify-plugins-volcengine_tos` - **Email**: sawyer36@foxmail.com - **License**: MIT License - **Support**: Through Dify platform and GitHub Issues --- **Ready to seamlessly integrate with Volcengine TOS?** # Plugin Submission Form ## 1. Metadata <!-- Please provide the following metadata of your plugin to make it easier for the reviewer to check the changes. - Plugin Author : The author of the plugin which is defined in your manifest.yaml - Plugin Name : The name of the plugin which is defined in your manifest.yaml - Repository URL: The URL of the repository where the source code of your plugin is hosted --> - **Plugin Author**: - **Plugin Name**: - **Repository URL**: ## 2. Submission Type - [x] New plugin submission - [ ] Version update for existing plugin ## 3. Description <!-- Please briefly describe the purpose of the new plugin or the updates made to the existing plugin --> ## 4. Checklist - [x] I have read and followed the Publish to Dify Marketplace guidelines - [x] I have read and comply with the Plugin Developer Agreement - [x] I confirm my plugin works properly on both Dify Community Edition and Cloud Version - [x] I confirm my plugin has been thoroughly tested for completeness and functionality - [x] My plugin brings new value to Dify ## 5. Documentation Checklist Please confirm that your plugin README includes all necessary information: - [x] Step-by-step setup instructions - [x] Detailed usage instructions - [x] All required APIs and credentials are clearly listed - [x] Connection requirements and configuration details - [x] Link to the repository for the plugin source code ## 6. Privacy Protection Information Based on Dify Plugin Privacy Protection [Guidelines](https://docs.dify.ai/plugins/publish-plugins/publish-to-dify-marketplace/plugin-privacy-protection-guidelines): ### Data Collection <!-- Does your plugin collect any user personal data? If yes, please list what types of user personal data are being collected according to the Plugin Privacy Protection Guidelines (for example: Email address, IP address, Age, etc) --> ### Privacy Policy - [x] I confirm that I have prepared and included a privacy policy in my plugin package based on the Plugin Privacy Protection Guidelines --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-22 18:00:18 -05:00
yindo closed this issue 2026-02-22 18:00:20 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-plugins#1510