# SeaweedFS 文件存储服务 本目录包含基于 [SeaweedFS](https://github.com/seaweedfs/seaweedfs) 的分布式文件存储服务配置,提供S3兼容接口,用于文件的存储和管理。 ## 服务组件 SeaweedFS 服务由以下组件组成: - **Master Server**: 负责管理卷服务器和文件分配 - **Volume Server**: 负责实际存储数据 - **Filer**: 提供文件系统接口 - **S3 Gateway**: 提供S3兼容接口 ## 快速开始 ### 1. 初始化环境 首先执行初始化脚本,设置环境变量和创建必要的配置文件: ```bash cd /Users/chenqiang/workspace/work/项目记录/202510铁岭县内网文件分发/demo/server/oss ./init ``` 初始化过程中会提示设置以下参数: - S3服务端口(默认:25003) - S3访问密钥 - S3密钥(会加密存储) ### 2. 启动服务 使用提供的服务脚本启动SeaweedFS: ```bash ./service start ``` ### 3. 停止服务 ```bash ./service stop ``` ### 4. 查看服务状态 ```bash ./service status ``` ## 环境变量配置 初始化后,环境变量将保存在 `.envrc` 文件中。主要配置项包括: - `SEAWEEDFS_VERSION`: SeaweedFS 版本 - `S3_PORT`: S3服务端口 - `S3_ACCESS_KEY`: S3访问密钥 - `S3_SECRET_KEY`: S3密钥(加密存储) - 各容器名称配置 ## 数据存储 - **Master数据**: `./master_data/` - **Volume数据**: `./volume_data/` - **Filer数据**: `./filer_data/` > **注意**: 数据目录会被 `.gitignore` 忽略,不会提交到代码仓库。 ## S3客户端配置 使用S3兼容的客户端访问服务时,需要配置以下参数: - **Endpoint**: `http://localhost:8333` - **Access Key**: 初始化时设置的值 - **Secret Key**: 初始化时设置的值 - **Region**: 可以使用任意值,如 `us-east-1` ## 安全注意事项 - S3密钥使用OpenSSL加密存储在 `seaweedfs_password.enc` 文件中 - 敏感配置文件(如 `.envrc` 和 `seaweedfs_password.enc`)已添加到 `.gitignore` - 建议定期备份数据目录 ## 故障排除 ### 常见问题 1. **服务启动失败** - 检查端口是否被占用 - 查看容器日志:`docker logs seaweedfs-master` 等 2. **S3访问认证失败** - 确认访问密钥和密钥是否正确 - 检查 `.envrc` 文件中的配置 3. **数据丢失** - 确保定期备份数据目录 - 避免直接修改数据目录中的文件 ## 维护指南 ### 更新SeaweedFS版本 1. 修改 `.envrc` 中的 `SEAWEEDFS_VERSION` 值 2. 重启服务:`./service restart` ### 清理旧数据 > **警告**: 清理数据前请确保已备份重要数据! 可以通过停止服务并清空数据目录来清理所有数据: ```bash ./service stop rm -rf master_data/* volume_data/* filer_data/* ./service start ``` ## 许可证 [MIT](LICENSE)