#discord-bot #virtual-filesystem #attachments #fuse

app discfs

以 Discord 附件形式存储文件的虚拟 FUSE 文件系统

2 个版本

0.1.1 2023 年 12 月 4 日
0.1.0 2023 年 12 月 4 日

#734文件系统

MIT/Apache

43KB
1K SLoC

DiscFS

将文件存储在 Discord 消息的附件中。

安装

使用 cargo install discfs 或在项目仓库中使用 Nix flake 安装。

请注意,您将需要开发库 fuse3-devopenssl-devpkg-config 或您包管理器中对应的名称。

设置

创建 Discord 机器人

首先您需要创建一个 Discord 机器人来上传文件。根据文档 (https://discord.com/developers/docs/getting-started),创建一个机器人。在侧边栏 "OAuth2 -> URL 生成器" 下,给它 bot 权限和以下机器人权限

  • 发送消息
  • 附件文件
  • 读取消息历史记录

然后复制底部的生成 URL,将其粘贴到浏览器中,并在您的个人服务器上安装机器人。

接下来,通过转到侧边栏 "机器人",点击 "重置令牌" 并复制令牌来获取机器人令牌。

此令牌以及机器人需要发送消息的频道的 ID 需要设置在以下环境变量中

DISCORD_TOKEN=
CHANNEL_ID=

可以通过转到 Discord 网络应用,导航到频道,并复制 URL 的最后一部分来获取频道 ID。

https://discord.com/channels/956113749209661480/ -> 956113749209661483 <- (this part)

运行 CLI

使用文本如下

Usage: discfs [OPTIONS] <MOUNTPOINT>

Arguments:
  <MOUNTPOINT>  Path to mount virtual filesystem at

Options:
      --dotenv             Use dotenv-vault (https://www.dotenv.org/docs/)
  -v...                    Logging verbosity. Repeat multiple times to increase logging level
      --db-path <DB_PATH>  Path to create SQLite database file [env: DB_PATH=fs.db] [default: ./fs.db]
  -h, --help               Print help
  -V, --version            Print version

请确保您没有意外删除 SQLite 数据库,因为它映射了所有附件并存储了所有文件元数据。删除它将导致所有上传的内容无法访问。

依赖项

~38–54MB
~1M SLoC