docker-seaweedfs/README.md

120 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)