文件导出
将悦库网盘中的文件批量导出到外部存储。支持三种目标:服务器本地目录、FTP 服务器、SMB/CIFS 共享。
前提:只能在悦库服务器本机运行,且当前账号需要对导出源路径拥有
download(下载)权限。
常用命令(复制使用)
导出到本地目录:
opscli export create --from /archive/docs --to /data/export/docs
导出到 FTP:
opscli export create --from /archive/docs --to ftp://192.168.1.10/backup/docs --username ftpuser --password ftppass
FTP 目标文件名乱码? 部分旧版 FTP 服务器以系统本地编码(如 GBK)存储文件名。导出到这类服务器时需指定
--ftp-encoding,否则中文目录和文件名将出现乱码:
opscli export create --from /archive/docs --to ftp://192.168.1.10/backup/docs \
--username ftpuser --password ftppass --ftp-encoding gbk
可选值同导入命令的 --ftp-encoding:gbk、gb2312、big5、shift-jis、euc-jp、euc-kr、windows-1252。
导出到 SMB/CIFS 共享:
opscli export create --from /archive/docs --to smb://192.168.1.20/nas/export/docs --username smbuser --password smbpass
导出指定用户的我的空间:
opscli export create --from user://zhangsan --to /data/export/zhangsan
全量导出(需管理员权限):
opscli export create --from / --to /data/export/full
一次导出多个来源(分号分隔,串行执行):
opscli export create --from "/archive/docs;/archive/video" --to /data/export
导出源格式
| 格式 | 说明 |
|---|---|
/仓库名/目录 | 悦库中的仓库、文件夹或单文件 |
/(或省略 --from) | 全量导出整个网盘(需管理员权限) |
user://账号 | 导出该用户我的空间的全部文件 |
user://* | 依次导出所有用户的我的空间(需管理员权限) |
目录结构保留规则
导出时在目标路径下保留悦库侧的相对目录结构:
--from /archive/docs --to /local/out→ 悦库中/archive/docs/2024/report.pdf导出为/local/out/docs/2024/report.pdf--from user://zhangsan --to /local/out→ 该用户的文件按原目录结构平铺到/local/out/
批量导出(JSON 文件)
推荐用于重复执行或需要审计的场景。
1. 准备批量任务文件 export-batch.json:
[
{ "from": "/archive/docs", "to": "/data/export/docs" },
{ "from": "user://zhangsan",
"to": "ftp://192.168.1.10/backup/zhangsan",
"username": "ftpuser", "password": "ftppass",
"ftp_encoding": "gbk" },
{ "from": "/video-archive",
"to": "smb://192.168.1.20/nas/export/video",
"username": "smbuser", "password": "smbpass",
"on_conflict": "resume" }
]
2. 执行:
opscli export batch --file /data/tasks/export-batch.json
遇错继续:
opscli export batch --file /data/tasks/export-batch.json --on-error continue
冲突处理
任务冲突(续传检测)
再次导出同源路径时,检测到未完成的任务:
- 加载阶段中断:自动删除旧任务并重新创建(无提示)
- 导出阶段中断:通过
--on-conflict控制行为:
| 值 | 说明 |
|---|---|
skip(默认) | 交互提示:[c] 续传、[r] 重新开始、[q] 退出(大小写不敏感) |
overwrite | 等同于 skip(文件级覆盖,不影响任务级冲突) |
resume | 自动续传,不提示 |
restart | 自动重新开始,不提示 |
文件级冲突
目标已存在同名文件时:
| 值 | 说明 |
|---|---|
skip(默认) | 跳过已存在的文件 |
overwrite | 覆盖已存在的文件 |
resume | 续传:已存在且大小相同则跳过,否则重新导出 |
查看与管理任务
查看单个任务状态:
opscli export status --taskId 7
查看最近任务列表:
opscli export list
opscli export list --limit 50
续传中断的任务:
opscli export run --taskId 7
取消任务:
opscli export terminate --taskId 7
删除任务记录:
# 删除单个任务
opscli export delete --taskId 7
# 强制删除(跳过确认提示)
opscli export delete --taskId 7 --force
常见问题与排障
- 提示"权限不足: 缺少 download 权限":检查当前账号是否对导出源路径有下载权限;全量导出(
--from /或user://*)需要管理员账号。 - FTP 目标文件名乱码:FTP 服务器以非 UTF-8 编码(如 GBK)存储文件名时,需添加
--ftp-encoding gbk(或对应编码)。可选值:gbk、gb2312、big5、shift-jis、euc-jp、euc-kr、windows-1252。 - FTP/SMB 连接 失败:确认目标地址、端口、用户名和密码正确,且悦库服务器能访问目标主机的对应端口(FTP 21 / SMB 445)。
- 本地目标路径不可写:检查目录权限;不存在的目录会自动创建。
- 提示"尚未登录":先执行
opscli login。
运维建议
- 首次导出使用小目录验证流程,确认结构和文件内容正确后再做全量导出。
- 大批量导出尽量避开业务高峰期。
- 批量任务优先使用 JSON 文件,便于保存、复用和审计。
- 导出完成后抽查若干文件,确认数量与内容与悦库侧一致。