Zotero+商业云盘同步详解
年轻人小朱
编辑于 2023年09月19日 22:05
收录于文集
共1篇

Zotero是一款免费、易用的工具,可帮助您收集、组织、注释、引用和共享研究。对于保存、分类、翻译、笔记等文献可以大幅提高效率。下面是本人对于使用商业云盘对zotero进行同步的心得详解。


一、登录zotero网站,注册账号

数据同步免费且无空间限制


二、安装zotfile插件,对pdf附件等重命名并进行移动

  1. zotero官方插件:https://www.zotero.org/support/plugins

  2. zotfile插件:http://zotfile.com/       含安装说明

  3. 如果进不去github,使用百度云盘下载: 链接: https://pan.baidu.com/s/1ULgK_CDUl_H6jx9YFA2f8g?pwd=9emi 

  4. 安装插件方式部菜单栏(工具)→附加组件→设置符号→install add on from files→选择插件文件

附加组件→设置


三、设置商业网盘同步盘

  1. 同步盘功能:下面举例存在两台电脑,A和BA电脑同步盘:在本地删除或者修改或者创建文件,云盘会进行相同的操作B电脑同步盘:A、B两台电脑文件保持一致,如果同时打开后会发生冲突(存在同名文件)会报错,并产生冲突文件。如果非同时打开,则更新最新修改过的文件。注意:必须熟记同步盘的同步规则,否则可能产生文件丢失问题。

  2. 可先使用几个文件进行模拟操作,如A中创建,查看B是否有同步到。 A、B删除,A、B同时创建重名文件(未保存状态下),冲突是怎么样的。

  3. 目前常用的主要有百度网盘(kb)、onedrive、天翼云盘、坚果云(限量)等等,可以选择常用的网盘设置同步盘。


四、设置文献地址

为方便区分,这里 “文献”  指的是数据库中的文件“附件”指的是文献的pdf文件。


 1. 地址1:编辑——首选项——高级——文件和文件夹——已链接附件的根目录——选择根目录(同步盘位置)

地址1

地址1含义:设置一个根目录,使所有电脑都能正常访问子目录中的附件

例:

  • A电脑中 E:\DesktopFiles\天翼云盘同步盘\文献附件  作为根目录,其子目录则是一个相对路径,如果子目录为:建筑结构学报\2022\韧性城市.pdf,则zotero会访问 根目录+子目录,即 E:\DesktopFiles\天翼云盘同步盘\文献附件\建筑结构学报\2022\韧性城市.pdf

  • B电脑中 G:\文件\天翼云盘同步盘\文献附件  作为根目录,其子目录则是一个相对路径,如果子目录为:建筑结构学报\2022\韧性城市.pdf,则zotero会访问 根目录+子目录,即 G:\文件\天翼云盘同步盘\文献附件 \建筑结构学报\2022\韧性城市.pdf

  • 因为同步盘中的文件都是作为子目录,所以A、B两台电脑访问的都是同一个文件,于是便建立了连接


2. 地址2:编辑——首选项——高级——文件和文件夹——已链接附件的根目录——数据储存位置

     注意:为避免冲突,不建议放在本地盘,因为不含附件,占用空间较小

地址2

地址2含义:储存文献的地址,可以默认也可以自定义


3. 地址3:工具——Zotfile Preferrnce——general settings——Source Folder for Attaching New Files

地址3

地址3含义:ZotFile可以将最近修改过的文件从某个文件夹 (如下载文件夹)中添加到当前选中的Zotero项目中作为新的附件,就是一个手动附加附件的文件地址,一般是在“下载”,或网上下载的储存文职。


4. 地址4:工具——Zotfile Preferrnce——general settings——Location of Files

地址4

地址4含义:ZotFile可以将新的和现有的附件移动到不同的位置。您可以在Zotero中存储附件文件的副本,这样您就可以将文件同步到Zotero服务器,也可以将文件移动到自定义文件夹并从Zotero链接到该位置。

设置:

  • custom location 设置和地址1相同,即云盘位置

  • 勾选  Use subfolder defined by  含义如下:%c——按照zotero中的分类建立子文件夹%w——按照期刊分类%y——按照年份window中子文件夹结构采用  " \ &#​34;, ios 系统采用 " / &#​34; ,注意区分,其他分类参考http://zotfile.com/index.html#renaming-rules  中的  Wildcards

例:按照截图所示,则会产生如下附件文件夹

N:\天翼盘同步盘\文献附件\韧性\建筑结构学报\韧性城市.pdf

五、设置附件重命名规则

方式:工具——Zotfile Preferrnce——Renaming Rules

注意:两台电脑要设置一致,才能使用相同的文件

重命名方式设置

  • 勾选方式一,使用zotero官方重命名

  • 不勾选方式二,自定义命名,第一个是文献命名,第二个是专利命名,其他设置可以相同

六、设置zotero官方同步

方式:编辑——首选项——同步

设置:登录账号,勾选"自动同步&#​34;,勾选"同步全文内容&#​34;

zotero官方同步设置

七、删除文献附件

由于zotfile是以软链接的形式指向附件,删除文献时,并不能删除相应附件。

此处提供两种方式:

  1. 插件:https://github.com/redleafnew/delitemwithatt  使用看其说明,不再赘述进不去则百度网盘: https://pan.baidu.com/s/1rmRIY5Uq-JQYzJjQyJZ2Cg?pwd=hrkf

  2. python程序,使用前请修改路径名称


import sqlite3

import os

# 设置 Zotero 数据库文件路径

zotero_db_path = "E:/文献/zotero.sqlite&#​34;  # 根据你的实际路径进行修改

# 设置 ZotFile 文件夹路径

zotfile_folder_path = "E:/DesktopFiles/天翼云盘同步盘/文献/附件/"  #​ 根据你的实际路径进行修改

# 连接到 Zotero 数据库

connection = sqlite3.connect(os.path.expanduser(zotero_db_path))

cursor = connection.cursor()

# 获取 Zotero 中的附件文件列表

cursor.execute("SELECT path FROM itemAttachments")

zotero_attachments = set(row[0] for row in cursor.fetchall())

# 遍历 ZotFile 文件夹中的文件和文件夹

countfile=0

countfolder=0

for root, dirs, files in os.walk(os.path.expanduser(zotfile_folder_path)):

    for file in files:

        file_path = os.path.join(root, file).replace("\\&#​34;, "/&#​34;)

             

        # 计算相对于 ZotFile 文件夹的相对文件路径

        relative_file_path ="attachments:&#​34; + os.path.relpath(file_path, start=zotfile_folder_path).replace("\\&#​34;, "/&#​34;)

           

        # 检查文件是否存在于 Zotero 附件列表中

        if relative_file_path not in zotero_attachments:

            countfile=countfile+1

            print(f"删除文件:{file_path} (相对路径:{relative_file_path})")

            os.remove(file_path)

           

# 删除空的文件夹

for root, dirs, files in os.walk(os.path.expanduser(zotfile_folder_path), topdown=False):

    for dir in dirs:

        dir_path = os.path.join(root, dir)

        if not os.listdir(dir_path):

            countfolder=countfolder+1

            print(f"删除文件夹:{dir_path}&#​34;)

            os.rmdir(dir_path)

# 关闭数据库连接

connection.close()

# 删除所有变量

del connection

del cursor

del zotero_attachments

print("共删除 %d 文件,删除 %d 文件夹&#​34; %(countfile,countfolder))


百度云盘链接:https://pan.baidu.com/s/14Z80rtOoVOkV-shOu9JdBw?pwd=ni9r  

八、待续