如何清理Digital Ocean上小型Mastodon服务器的近1TB媒体数据?
Mastodon服务器存储问题解决方案
1. 服务器是否在同步Fediverse其他实例内容?
默认情况下,Mastodon会自动同步与本地用户有交互的远程内容——比如本地用户关注的远程账号发布的帖子、被本地用户转发/提及的内容,这些内容里的媒体文件会同步到你的服务器存储中。存储量暴增大概率是以下原因:
- 有本地用户关注了大量远程账号,同步了大量远程媒体
- 未开启自动清理过期远程媒体的机制
- 误开启了某些主动抓取远程内容的自定义配置或第三方插件
2. 能否阻止导入与本服务器无交互用户的数据?
可以,你考虑的LIMITED_FEDERATION_MODE=true是核心解决方案,开启后服务器只会同步与本地用户有明确交互的远程内容(关注、提及、转发等),不会主动抓取无关联的Fediverse内容。还可以配合以下配置强化限制:
- 开启媒体自动清理:设置
MEDIA_CLEANUP_ENABLED=true,通过MEDIA_CLEANUP_DAYS指定保留远程媒体的天数(比如设为7,清理7天前未被引用的远程媒体) - 限制远程帖子保留时长:设置
REMOTE_POSTS_RETAIN_DAYS=14,自动删除超过14天的远程帖子及对应媒体文件 - 关闭远程内容自动发现:若不需要通过链接自动抓取远程内容,可设置
AUTOMATIC_FEDERATION=false
修改配置后需重启Mastodon服务生效。
3. 如何清理Digital Ocean S3中的冗余数据?
优先使用Mastodon官方tootctl工具清理,避免手动操作S3导致数据库与存储不一致:
- 清理过期远程媒体:执行命令
tootctl media remove --days 7(替换7为你想保留的天数,删除未被本地用户引用、超期的远程媒体) - 清理用户旧头像/横幅:执行命令
tootctl media remove --prune-profiles,删除用户已更换的旧头像、横幅等媒体文件 - 清理缓存媒体:执行命令
tootctl cache clear,删除临时缓存的媒体文件
执行上述命令后,Mastodon会自动删除S3中对应的冗余文件。若仍有残留无效文件,可在Digital Ocean S3控制台筛选未被数据库引用的文件删除,操作前建议备份数据。
内容的提问来源于stack exchange,提问作者Loyd C.
相关产品推荐
相关产品推荐

