938 字
5 分钟
关于如何让多个FVTT实例共享数据文件的尝试

前言#

和他人拼好服务后遇到了一个难事:目前我的FVTT资产数据已经达到了70GiB的大小,但是服务器的云盘大小只有100GiB,显然不可能创建两个实例运行FVTT。在整理后我们的使用需求与特点如下:

  1. 需要同时段访问两个FVTT,但不是两个世界包
  2. 都是需要DnD5e及附属模块
  3. 资产都一样

因此在确定以上特点后,我便想到了一个方案用于解决该问题。

CAUTION

以下未经过广泛的生产环境验证,仅供参考,无法保证在应用过程中不会出现如数据损坏等严重问题!

准备工具#

此方案应该具有的前置知识:

  • 软链接

此方案需要的软件工具:

  • FVTT实例若干(端口不同)
  • NodeJS(FVTT运行时部分)

FVTT共享部分#

首先我们需要确定FVTT除了本体以外的数据文件夹结构:

data
├── Backups //备份文件
├── Config //配置文件,Licenses便存在这里
├── Data //数据文件,存放世界包、系统等资产文件
└── Logs //日志文件

从文件的作用可以看出来,Data文件便是我们的资产所在文件夹,因此我们需要做到的便是在不同的实例中共享此文件夹。

那么如何建立连接呢?答案便是软链接:

符号链接基本上是高级快捷方式。创建指向单个文件或文件夹的符号链接,该链接在 Windows 中看起来与该文件或文件夹相同 — 即使它只是指向该文件或文件夹的链接。

例如,假设您有一个程序需要其文件位于 C:\Program。您确实希望将此目录存储在 D:\Stuff 中,但程序要求其文件位于 C:\Program 中。您可以将原始目录从 C:\Program 移动到 D:\Stuff,然后在 C:\Program 处创建指向 D:\Stuff 的符号链接。当您重新启动该程序时,它将尝试访问其位于 C:\Program 的目录。 Windows 会自动将其重定向到 D:\Stuff,一切都会像在 C:\Program 中一样工作。

这个技巧可以用于各种各样的事情,包括将任何文件夹与 Dropbox、Google Drive 和 OneDrive 等程序同步。

符号链接有两种类型:硬链接和软链接。软符号链接的工作方式与标准快捷方式类似。当您打开文件夹的软链接时,您将被重定向到存储文件的文件夹。然而,硬链接使得文件或文件夹看起来好像实际上存在于符号链接的位置,并且您的应用程序不会有任何更好的了解。这使得硬符号链接在大多数情况下更有用。

请注意,Windows 实际上并不使用术语“硬链接”和“软链接”。相反,它使用术语“硬链接”和“符号链接”。在 Windows 文档中,“符号链接”与“软链接”相同。但是,mklink 命令可以创建硬链接(在 Windows 中称为“硬链接”)和软链接(在 Windows 中称为“符号链接”)。

在Windows中建立软链接的命令如下:

软链接建立
mklink /D Link Target

这里相对于建立了一个箭头,把Link文件指向Target文件。

使用命令提示行:

Terminal window
mklink /D C:/FVTT/data-1/Data C:/Share/Data
mklink /D C:/FVTT/data-2/Data C:/Share/Data

打开不同的实例:

image-20250628013731086
image-20250628013743980

成功。

CAUTION

注意,请不要同时运行相同的世界包,会触发资源抢夺的问题导致在运行过程中出现意外的运行结果,同时如果可以也请尽量避免修改资源以触发此问题。

关于如何让多个FVTT实例共享数据文件的尝试
https://leave-time.me/posts/关于如何让多个fvtt实例共享数据文件的尝试/
作者
Leave_Time
发布于
2025-06-26
许可协议
CC BY-NC-SA 4.0
上次更新时间:2025年08月09日-17:52:37

部分信息可能已经过时