- 版权类型
- 原创
- 插件中文名称
- 土豆麻袋
- 插件英文名称
- PotatoSack
- 支持的核心(服务端)
- Paper
- Purpur
- PufferFish
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 开源地址,欢迎 Star:https://github.com/Bottle-M/PotatoSack
- 上面标明的“支持的核心”和“适配版本”仅是我测试过的版本,其余的尚未测试。
本插件在压缩上传文件时可以几乎不占用多余的本地硬盘空间,适用于服务提供商对硬盘空间进行了限制的场景。
- 本插件目前仅支持 OneDrive (非世纪互联版)。
## 简介
这是一个咱为自己 Minecraft 服务器写的一个简单的备份插件,功能较为简单,可以对世界数据进行备份。支持增量备份/全量备份机制。
备份的存档不会留存在本地,而是上传至 OneDrive 云端目录中。
## 概念介绍
请见 https://github.com/Bottle-M/PotatoSack/blob/main/README.zh-CN.md#概念介绍 。
其中包含对于本插件“一组备份“以及”流式压缩上传“的介绍。
## 安装方式
1. 在[这里](https://github.com/Bottle-M/PotatoSack/releases/latest)下载插件。
2. 把插件复制到你服务器目录下的 `plugins` 目录中。
3. 启动服务器,插件会在 `plugins/PotatoSack` 目录下生成初始配置文件 `configs.yml`,你需要在此文件中对插件进行必要的配置(包括 OneDrive Token 的配置,在下方“小工具”中有相应的工具)。
4. 修改配置后重启服务器即可。如果见到下面这样的日志内容,说明 PotatoSack 插件启动成功。
```log
[12:52:32 INFO]: [PotatoSack] PotatoSack successfully initialized! Savor using it!
```
## 配置文件
配置文件位于 `plugins/PotatoSack/configs.yml`。
[/MD]
[MD]
```yaml
# OneDrive API 配置 (支持 OneDrive Business(ODB)/Personal(ODC))
onedrive:
# 开发文档参考: https://learn.microsoft.com/en-us/g...e-the-refresh-token-to-get-a-new-access-token
# 工具: https://github.com/Bottle-M/PotatoSack/tree/main/onedrive-token-tool
client-id:
client-secret:
refresh-token:
# 你想要保留的备份组数.
# 注:"一组备份 "包括一个全量备份和其后的增量备份(在下一个全量备份之前的)。
max-full-backups-retained: 3
# 相邻两次全量备份之间的时间间隔 (以分钟为单位)
full-backup-interval: 1440
# 相邻两次增量备份之间的时间间隔 (以分钟为单位)
incremental-backup-check-interval: 15
# 当没有玩家在线时是否暂停进行增量备份
# 注:全量备份将照常进行。
stop-incremental-backup-when-no-player: true
# 是否采用流式压缩上传
# 注: 当服务器硬盘空间不够大时可以启用此选项,一旦启用,上传过程中文件压缩就不会额外占用多余的硬盘空间,适用于服务商限制了硬盘空间的情况
# 注: 这种方式下程序会将每块压缩文件数据暂时写入内存中的缓冲区,代价并不高。
use-streaming-compression-upload: false
# 需要进行备份的世界名,示例如下:
# worlds:
# - world
# - world_nether
# - world_the_end
# 注: 如果这个选项留空了,则本插件不会工作。
worlds: [ ]
```
[/MD]
```yaml
# OneDrive API 配置 (支持 OneDrive Business(ODB)/Personal(ODC))
onedrive:
# 开发文档参考: https://learn.microsoft.com/en-us/g...e-the-refresh-token-to-get-a-new-access-token
# 工具: https://github.com/Bottle-M/PotatoSack/tree/main/onedrive-token-tool
client-id:
client-secret:
refresh-token:
# 你想要保留的备份组数.
# 注:"一组备份 "包括一个全量备份和其后的增量备份(在下一个全量备份之前的)。
max-full-backups-retained: 3
# 相邻两次全量备份之间的时间间隔 (以分钟为单位)
full-backup-interval: 1440
# 相邻两次增量备份之间的时间间隔 (以分钟为单位)
incremental-backup-check-interval: 15
# 当没有玩家在线时是否暂停进行增量备份
# 注:全量备份将照常进行。
stop-incremental-backup-when-no-player: true
# 是否采用流式压缩上传
# 注: 当服务器硬盘空间不够大时可以启用此选项,一旦启用,上传过程中文件压缩就不会额外占用多余的硬盘空间,适用于服务商限制了硬盘空间的情况
# 注: 这种方式下程序会将每块压缩文件数据暂时写入内存中的缓冲区,代价并不高。
use-streaming-compression-upload: false
# 需要进行备份的世界名,示例如下:
# worlds:
# - world
# - world_nether
# - world_the_end
# 注: 如果这个选项留空了,则本插件不会工作。
worlds: [ ]
```
[/MD]
[MD]
## 命令
这个插件目前只有一个命令:
```text
/potatosack reload
```
用于热重载插件配置文件。
### 命令权限节点
```text
potatosack.reload
```
>

## 小工具
### Backup Merger
上文提到过,“一组备份”包括一个全量备份和一些增量备份。在恢复服务器数据的时候,BackupMerger 可以将这些备份合并成一个完整的备份。
详见 [BackupMerger](https://github.com/Bottle-M/PotatoSack/blob/main/backups-merger/README.zh_CN.md)。
### OneDrive Token Tool
通过这个工具你可以获取到编写配置时所需的 OneDrive 的 Refresh Token。
详见 [onedrive-token-tool](https://github.com/Bottle-M/PotatoSack/blob/main/onedrive-token-tool/README.zh_CN.md)。
## FAQ
1. Q:启动时控制台怎么打印出了 404 ?
A:这往往是因为云端的文件缺失或相应目录未建立,不过不用担心,程序在遇到 404 响应后会自动建立相应文件和目录。
2. Q:备份数据存放在 OneDrive 的哪个位置?
A:`OneDrive 根目录/PotatoSack`,或者 `OneDrive 根目录/应用/<你创建的应用程序名>/PotatoSack`。当使用 OneDrive 家庭版 / 个人版,且采用 `Files.ReadWrite.AppFolder` 权限结点时,将会是后者的情况。
3. Q:为什么叫 PotatoSack?
A:因为咱服务器的性能和土豆差不多,备份数据就像扛土豆麻袋一样 (゜ー゜)。
如果还有其他问题,欢迎提出 issue。
## 开源协议
本插件采用 MIT 开源协议。
感谢你的使用 ( ̄▽ ̄)"
[/MD]