
我的想法是,把一个 sqlite 微型数据库放在坚果云上,利用 Webdav 随时读写.方便两台 Mac 随时接入且偶尔各自写入一些数据(不频繁)
目前是先用 Finder 连接地址后输入的账号密码,映射了相关盘符。用 Python 接入时 cOnn= sqlite3.connect(r'https://dav.jianguoyun.com/dav//我的坚果云 /xxx.db') 会提示 sqlite3.OperationalError: unable to open database file
有什么方法解决吗?还是 Webdav 不能这样用?也是第一次接触。
1 pupboss Mar 21, 2021 via iPhone 你都映射盘符了,用本地绝对路径最容易 如果想用 python 直接连接,你应该先去找 webdav 协议的文件操作库,再用 sqlite 连接 |
2 youthfire OP @pupboss #1 我看 windows 一般映射都是形成一个本地盘符,然后 Python 直接访问这个盘符下文件,现在看 Mac 连接后它的路径属性就是 http 地址。其实我倒是就是想直接操作这个“绝对地址”。 |
3 zengxs Mar 21, 2021 两个客户端同时写入不会有数据竞争的问题 |
4 Eleutherios Mar 21, 2021 via iPhone google 一下 你就知道 |
5 youthfire OP @zengxs #3 谢谢提醒,写入不频繁,且写入时间极短,基本也没有对同表操作产生,以前都是手工拷贝一份给第二台电脑,但目前各自会产生少量自有数据所以考虑这种方式 |
6 youthfire OP @Eleutherios 确实找了,看到的主要是例如 webdavclient3 对地址上的各种 download, makedir, clean, move, update 操作,实际上我并不想对“空间”进行操作,而只是想获取“文件地址”,以保证 Python 可以直接 access 。我不是很清楚 Webdav 是不是可以这样用。 |
7 如果你要直接这么连接,那需要 python 的 sqlite3 库支持连接 webdav,但它显然是不支持的,所以不可行。 最简单的办法是直接写 macOS 映射后的地址, /Volumes/xxx 这种的,让系统的 webdavfs 帮你管。 |
8 SenLief Mar 21, 2021 不建议用坚果云 webdav,这货对于请求限制很严格,如果请求量不大还好。建议还是用 COS |