[PR #1340] [MERGED] add new plugin huawei_obs #1537

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

📋 Pull Request Information

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

Base: mainHead: main-huawei-obs-plugin


📝 Commits (6)

  • 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
  • 3f9ec85 add new plugin huawei_obs-0.0.1.difypkg
  • e2e9e89 add new plugin huawei_obs-0.0.1.difypkg[update:make readme for English and Chinese in separately]

📊 Changes

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

View changed files

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

📄 Description

Huawei Cloud OBS Plugin

A powerful Dify plugin providing seamless integration with Huawei Cloud Object Storage Service (OBS). Enables direct file uploads to Huawei Cloud OBS and efficient file retrieval using URLs, with rich configuration options.

Version Information

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

Version History

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

Quick Start

  1. Download the huawei_obs plugin from the Dify marketplace
  2. Configure Huawei Cloud OBS authorization information
  3. After completing the above configuration, you can immediately use the plugin

Core Features

File Upload to OBS

  • Direct File Upload: Upload any file type directly to Huawei Cloud OBS
  • 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 OBS
    • 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 OBS URLs
  • Cross-Region Support: Works with all Huawei Cloud OBS 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
  • Huawei Cloud OBS account with valid AK/SK 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 Huawei Cloud OBS endpoint (e.g., obs.cn-north-4.myhuaweicloud.com)
    • Bucket Name: Your OBS bucket name
    • Access Key: Your Huawei Cloud Access Key
    • Secret Key: Your Huawei Cloud Secret Key

Usage

The plugin provides three powerful tools for interacting with Huawei Cloud OBS:

1. Upload File to OBS (upload_file)

Dedicated tool for uploading files to Huawei Cloud OBS.

  • 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 OBS storage
    • filename_mode: Optional filename composition mode (default: filename)
      • filename: Use original filename
      • filename_timestamp: Use original filename plus timestamp

2. Get File by URL (get_file_by_url)

Dedicated tool for retrieving files from Huawei Cloud OBS using URLs.

  • Parameters:
    • file_url: The URL of the file in Huawei Cloud OBS

3. Multi Upload Files to OBS (multi_upload_files)

Dedicated tool for uploading multiple files to Huawei Cloud OBS.

  • Parameters:
    • files: The local files 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_mode: Optional filename composition mode (default: filename)
      • filename: Use original filename
      • filename_timestamp: Use original filename plus timestamp

Examples

Upload File

upload-01

Batch Upload Files

upload-02

Get File by URL

download-01 download-02

Notes

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

Developer Information

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

Ready to seamlessly integrate with Huawei Cloud OBS?

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/1340 **Author:** [@sawyer-shi](https://github.com/sawyer-shi) **Created:** 10/9/2025 **Status:** ✅ Merged **Merged:** 10/22/2025 **Merged by:** [@crazywoola](https://github.com/crazywoola) **Base:** `main` ← **Head:** `main-huawei-obs-plugin` --- ### 📝 Commits (6) - [`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 - [`3f9ec85`](https://github.com/langgenius/dify-plugins/commit/3f9ec8564784cfa5e3327d907c390544259e6631) add new plugin huawei_obs-0.0.1.difypkg - [`e2e9e89`](https://github.com/langgenius/dify-plugins/commit/e2e9e898b7753668f92610a222ba51915100a362) add new plugin huawei_obs-0.0.1.difypkg[update:make readme for English and Chinese in separately] ### 📊 Changes **1 file changed** (+0 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `sawyer-shi/huawei_obs/huawei_obs-0.0.1.difypkg` (+0 -0) </details> ### 📄 Description # Huawei Cloud OBS Plugin A powerful Dify plugin providing seamless integration with Huawei Cloud Object Storage Service (OBS). Enables direct file uploads to Huawei Cloud OBS and efficient file retrieval using URLs, with rich configuration options. ### Version Information - **Current Version**: v0.0.1 - **Release Date**: 2025-09-30 - **Compatibility**: Dify Plugin Framework - **Python Version**: 3.12 #### Version History - **v0.0.1** (2025-09-30): Initial release with file upload and retrieval capabilities, support for multiple directory structures and filename modes ### Quick Start 1. Download the huawei_obs plugin from the Dify marketplace 2. Configure Huawei Cloud OBS authorization information 3. After completing the above configuration, you can immediately use the plugin ### Core Features #### File Upload to OBS - **Direct File Upload**: Upload any file type directly to Huawei Cloud OBS - **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 OBS - 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 OBS URLs - **Cross-Region Support**: Works with all Huawei Cloud OBS 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 - Huawei Cloud OBS account with valid AK/SK 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 Huawei Cloud OBS endpoint (e.g., obs.cn-north-4.myhuaweicloud.com) - **Bucket Name**: Your OBS bucket name - **Access Key**: Your Huawei Cloud Access Key - **Secret Key**: Your Huawei Cloud Secret Key ### Usage The plugin provides three powerful tools for interacting with Huawei Cloud OBS: #### 1. Upload File to OBS (upload_file) Dedicated tool for uploading files to Huawei Cloud OBS. - **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 OBS storage - `filename_mode`: Optional filename composition mode (default: `filename`) - `filename`: Use original filename - `filename_timestamp`: Use original filename plus timestamp #### 2. Get File by URL (get_file_by_url) Dedicated tool for retrieving files from Huawei Cloud OBS using URLs. - **Parameters**: - `file_url`: The URL of the file in Huawei Cloud OBS #### 3. Multi Upload Files to OBS (multi_upload_files) Dedicated tool for uploading multiple files to Huawei Cloud OBS. - **Parameters**: - `files`: The local files 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_mode`: Optional filename composition mode (default: `filename`) - `filename`: Use original filename - `filename_timestamp`: Use original filename plus timestamp ### Examples #### Upload File <img width="2097" height="972" alt="upload-01" src="https://github.com/user-attachments/assets/1bf79e06-4631-4521-bce5-6533d6337f19" /> #### Batch Upload Files <img width="2017" height="814" alt="upload-02" src="https://github.com/user-attachments/assets/cf25735a-187a-448b-b4ef-aa9bddd3dbfb" /> #### Get File by URL <img width="2254" height="570" alt="download-01" src="https://github.com/user-attachments/assets/51c7ac37-80f7-4585-9bf7-12eb84bf1ec5" /> <img width="2155" height="544" alt="download-02" src="https://github.com/user-attachments/assets/0d22a3d5-563d-4068-99ac-d7306545aba2" /> ### Notes - Ensure your OBS bucket has the correct permissions configured - The plugin requires valid Huawei Cloud credentials with appropriate OBS access permissions - For very large files, consider using multipart upload functionality (not currently implemented) ### Developer Information - **Author**: `https://github.com/sawyer-shi` - **Email**: sawyer36@foxmail.com - **License**: MIT License - **Souce Code**: `https://github.com/sawyer-shi/dify-plugins-huawei-obs` - **Support**: Through Dify platform and GitHub Issues --- **Ready to seamlessly integrate with Huawei Cloud OBS?** # 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 - [ ] 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:49 -05:00
yindo closed this issue 2026-02-22 18:00:50 -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#1537