AI摘要:针对Zotero用户普遍面临的300MB免费同步空间不足问题,本文提出了一种基于JavaScript脚本的解决方案。由于Zotero的元数据同步(无限免费)与附件同步(限制300MB)相互独立但空间不足会影响元数据同步,作者设计并分享了一段可直接在Zotero中运行的脚本代码,用于批量删除库中所有PDF附件。该脚本通过遍历用户文献库,识别并清除所有PDF文件,从而释放同步空间,使元数据同步恢复正常。文章还建议关闭自动添加PDF功能以避免空间再次被占满。该方法适用于主要使用Zotero管理参考文献、习惯在线阅读PDF的用户。
两年前写的Zotero教程帮助了很多人(传送门:《以前对Zotero不屑一顾,现在真香定律了(超详细Zotero文献阅读及管理教程)》),这篇公众号文章也算是偏多阅读量的,4w+阅读,5800+转发。
这几天发现工位电脑上的文献同步不到宿舍的笔记本了,仔细看,原来是存储空间不足。虽然之前写过用交大云盘来解决这个问题,但是我自己都嫌麻烦(见《详细步骤来了!基于WebDAV协议使用上海交大网盘作为Zotero的附件同步方式》)。我个人也是懒得用坚果云之类的第三方,因为我基本不怎么看文献,看到值得精度的好文献会选择直接下载下来打印着看。
我又仔细查阅了一下Zotero 本身的同步机制。发现政策如下:
- 元数据(Metadata)同步: 文献的标题、作者、期刊、笔记、标签等文本信息。这部分是 通过 Zotero 官方服务器同步的,免费且无限量。这也是为什么你即使不设置文件同步,在不同设备上也能看到一样的文献列表。
- 文件附件(Attachment)同步: PDF、Word 文档、截图等。这部分才是存储空间的大头,Zotero 官方只提供 300M 免费空间。超出部分需要付费订阅,对于文献量大的同学来说,性价比可能不高。
一旦超过300MB,同步就会停止。 必须付费购买更大的存储方案(如2GB/20美元/年,6GB/60美元/年),才能继续同步。也就是自带的 300M 免费存储空间是附件存储,而文献信息则是免费且无限量。但是要是300MB空间满了,Metadata也因为同步失败而无法继续同步。
既然如此,对于小陶来说,其实主要是用Zotero来解决参考文献这一部分的格式问题,看论文我基本都是在线看的,Zotero里的pdf我几乎不会打开,于是解决方案就来了:直接把所有的pdf附件都清空拉倒。好在Zotero是支持JavaScript脚本的,平时做网站也没少玩,直接开整。
我的Zotero版本是9.0.3。两年前的教程还是Zotero7。按照下面的步骤找到“Run JavaScript”:
然后输入我的脚本代码:
let libraryID = Zotero.Libraries.userLibraryID;
let items = await Zotero.Items.getAll(libraryID);
let count = 0;
for (let item of items) {
if (!item.isAttachment()) {
continue;
}
let path = item.getFilePath();
if (path && path.toLowerCase().endsWith(".pdf")) {
await item.eraseTx();
count++;
}
}
Zotero.alert(
null,
"完成",
"已删除 " + count + " 个 PDF"
);运行之后就是下面的这样,然后你就发现pdf全没了。
当然这只是把已经下载过的pdf删掉了,还需要把保存条目时候自动添加pdf关掉:
赞赏作者


如果觉得我的文章对你有用,请随意赞赏!































