ragflow/docs
Andrea Bugeja 74afb8d710
feat: Add Single Bucket Mode for MinIO/S3 (#11416)
## Overview

This PR adds support for **Single Bucket Mode** in RAGFlow, allowing
users to configure MinIO/S3 to use a single bucket with a directory
structure instead of creating multiple buckets per Knowledge Base and
user folder.

## Problem Statement

The current implementation creates one bucket per Knowledge Base and one
bucket per user folder, which can be problematic when:
- Cloud providers charge per bucket
- IAM policies restrict bucket creation
- Organizations want centralized data management in a single bucket

## Solution

Added a `prefix_path` configuration option to the MinIO connector that
enables:
- Using a single bucket with directory-based organization
- Backward compatibility with existing multi-bucket deployments
- Support for MinIO, AWS S3, and other S3-compatible storage backends

## Changes

- **`rag/utils/minio_conn.py`**: Enhanced MinIO connector to support
single bucket mode with prefix paths
- **`conf/service_conf.yaml`**: Added new configuration options
(`bucket` and `prefix_path`)
- **`docker/service_conf.yaml.template`**: Updated template with single
bucket configuration examples
- **`docker/.env.single-bucket-example`**: Added example environment
variables for single bucket setup
- **`docs/single-bucket-mode.md`**: Comprehensive documentation covering
usage, migration, and troubleshooting

## Configuration Example

```yaml
minio:
  user: "access-key"
  password: "secret-key"
  host: "minio.example.com:443"
  bucket: "ragflow-bucket"      # Single bucket name
  prefix_path: "ragflow"         # Optional prefix path
```

## Backward Compatibility

 Fully backward compatible - existing deployments continue to work
without any changes
- If `bucket` is not configured, uses default multi-bucket behavior
- If `bucket` is configured without `prefix_path`, uses bucket root
- If both are configured, uses `bucket/prefix_path/` structure

## Testing

- Tested with MinIO (local and cloud)
- Verified backward compatibility with existing multi-bucket mode
- Validated IAM policy restrictions work correctly

## Documentation

Included comprehensive documentation in `docs/single-bucket-mode.md`
covering:
- Configuration examples
- Migration guide from multi-bucket to single-bucket mode
- IAM policy examples
- Troubleshooting guide

---

**Related Issue**: Addresses use cases where bucket creation is
restricted or costly
2025-12-11 19:22:47 +08:00
..
contribution Docs: Added contribution guidelines and sandbox-related tips (#7685) 2025-05-16 16:28:21 +08:00
develop Bump python to >=3.12 (#11846) 2025-12-09 19:55:25 +08:00
guides Fix errors (#11795) 2025-12-08 09:42:10 +08:00
references Feat: enhance metadata operation (#11874) 2025-12-11 09:59:15 +08:00
_category_.json Reorganized docs for docusaurus publish (#860) 2024-05-21 20:53:55 +08:00
configurations.md feat: add Redis username support (#11608) 2025-12-01 11:26:20 +08:00
faq.mdx Fix errors (#11795) 2025-12-08 09:42:10 +08:00
quickstart.mdx Minor style changes (#11554) 2025-11-27 09:42:06 +08:00
release_notes.md Docs: minor (#11385) 2025-11-19 19:41:21 +08:00
single-bucket-mode.md feat: Add Single Bucket Mode for MinIO/S3 (#11416) 2025-12-11 19:22:47 +08:00