Molunerfinn / PicGo

:rocket:A simple & beautiful tool for pictures uploading built by vue-cli-electron-builder
https://molunerfinn.com/PicGo/
MIT License
23.86k stars 2.22k forks source link

频繁丢失配置文件 #806

Closed nonozone closed 2 years ago

nonozone commented 2 years ago

声明:我已经仔细看过 文档FAQ、和搜索过已经关闭的 issues 后依然没有找到答案,所以才发了一个新的 issue。

问题类型

bug

PicGo 的相关信息

2.3.0, Windows11

问题重现

picgo频繁出现 配置丢失的情况,用了一段时间再重启电脑,突然所有的图床设置都没有了,要重新配置图床,并且用了rename的插件的配置一样丢失了,要重新配置。这个情况出现了好多次。

Molunerfinn commented 2 years ago

确认一下配置文件丢失是否都发生在重启电脑之后?picgo有配置文件备份机制,可以看看配置文件所在目录的备份文件(文件名还是后缀带有bak)是否正常

nonozone commented 2 years ago

麻烦的地方就是在这里,并不是每一次重启就会丢配置。

Molunerfinn commented 2 years ago

下次如果再遇到,可以看一下配置文件所在路径,有一个备份的文件data.bak.json,是备份的配置文件,理论上如果遇到主文件坏掉了,会从备份的文件里恢复的。

image

不过读取配置文件如果发生错误之后,目前只有通知提示并没有写入日志,我把这块也写到日志里,然后把当前错误的配置文件留底吧,后续好排查原因

Molunerfinn commented 2 years ago

另外想问一下,配置丢失的情况下,相册数据还在么

nonozone commented 2 years ago

这个我倒是没有注意,因为我主要用这个配合typora使用,并且是直接把本地图片粘贴到编辑器,自动转化为七牛的在线图片网址了。 或者说怎么查看这个相册数据?

另外,刚才也特意找了下,没有发现有备份(.bak)的配置文件存在。

Molunerfinn commented 2 years ago

这个我倒是没有注意,因为我主要用这个配合typora使用,并且是直接把本地图片粘贴到编辑器,自动转化为七牛的在线图片网址了。 或者说怎么查看这个相册数据?

另外,刚才也特意找了下,没有发现有备份(.bak)的配置文件存在。

打开picgo主窗口,有个相册tab。

备份文件是 data.bak.json

nonozone commented 2 years ago

哦,刚才翻了下,以前的相册数据都还在,也有备份的配置文件。但是不知道不是跟这个原因有关:最早的时候安装picgo我是直接默认安装的,就直接安装到用户目录下面了,后来我觉得路径好乱。有一次升级的时候,我改成全局安装了,也就是program目录里,是不是两者冲突了,但是按道理也不会,配置文件都是在appdata文件夹啊。

Molunerfinn commented 2 years ago

嗯配置文件是会在当前的用户目录的appdata里的,理论上不影响。

建议目前可以先拷贝一份配置文件,下次如果遇到配置文件丢失,可以手动还原。同时可以及时回复本issue,并提供当前的配置文件、备份文件

后续picgo遇到配置文件读取失败的情况,会拷贝一份失败的文件,用于回溯现场

nonozone commented 2 years ago

好的。

nonozone commented 2 years ago

刚才编辑的时候,粘贴图片到编辑器,picgo莫名其妙无法启动,然后直接在系统菜单栏点picgo,也是无法启动,只好重新下载安装,用户目录里的那个data.bak.json备份文件,是系统默认的ms.sm为图床的设置,其他设置是空的。

nonozone commented 2 years ago

不过,这次确实是因为我电脑的问题,被我强制关机重启了。

lunfangyu commented 2 years ago

嗯配置文件是会在当前的用户目录的appdata里的,理论上不影响。

建议目前可以先拷贝一份配置文件,下次如果遇到配置文件丢失,可以手动还原。同时可以及时回复本issue,并提供当前的配置文件、备份文件

后续picgo遇到配置文件读取失败的情况,会拷贝一份失败的文件,用于回溯现场

出现同样的配置丢失问题;如下截图所示: image_20223122093117

当前的配置文件、备份文件: picgodata.zip

lunfangyu commented 2 years ago

嗯配置文件是会在当前的用户目录的appdata里的,理论上不影响。 建议目前可以先拷贝一份配置文件,下次如果遇到配置文件丢失,可以手动还原。同时可以及时回复本issue,并提供当前的配置文件、备份文件 后续picgo遇到配置文件读取失败的情况,会拷贝一份失败的文件,用于回溯现场

出现同样的配置丢失问题;如下截图所示: image_20223122093117

当前的配置文件、备份文件: picgodata.zip

我查看了配置文件,发现所有配置均已没有;又查看了备份文件,同样没有保存历史配置;非常奇怪。 这里顺便贴一下picgo.log日志: 2022-03-13 20:01:16 [PicGo INFO] [PicGo Server] is listening at 36677 2022-03-20 09:48:57 [PicGo INFO] [PicGo Server] is listening at 36677 2022-03-22 21:20:49 [PicGo INFO] [PicGo Server] get the request {"list":["C:\\Users\\username\\AppData\\Roaming\\Typora\\typora-user-images\\image-20220322212046144.png"]} 2022-03-22 21:20:49 [PicGo INFO] [PicGo Server] upload files in list 2022-03-22 21:20:49 [PicGo INFO] Before transform 2022-03-22 21:20:49 [PicGo INFO] Transforming... Current transformer is [path] 2022-03-22 21:20:50 [PicGo INFO] Before upload 2022-03-22 21:20:50 [PicGo INFO] beforeUploadPlugins: super-prefix running 2022-03-22 21:20:50 [PicGo INFO] beforeUploadPlugins: renameFn running 2022-03-22 21:20:50 [PicGo INFO] Uploading... Current uploader is [smms] 2022-03-22 21:20:55 [PicGo WARN] failed 2022-03-22 21:20:55 [PicGo ERROR] ------Error Stack Begin------ Error: You must be logged in to use. at Object.handle (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\plugins\uploader\smms.js:51:23) at processTicksAndRejections (internal/process/task_queues.js:89:5) at async Lifecycle.doUpload (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\core\Lifecycle.js:80:9) at async Lifecycle.start (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\core\Lifecycle.js:26:13) at async PicGo.upload (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\core\PicGo.js:205:32) at async Object.upload (D:\Program Files\PicGo\resources\app.asar\background.js:36:29196) at async Pt (D:\Program Files\PicGo\resources\app.asar\background.js:36:31625) at async D:\Program Files\PicGo\resources\app.asar\background.js:36:32625 -------Error Stack End------- 2022-03-22 21:20:55 [PicGo ERROR] ------Error Stack Begin------ Error: You must be logged in to use. at Object.handle (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\plugins\uploader\smms.js:51:23) at processTicksAndRejections (internal/process/task_queues.js:89:5) at async Lifecycle.doUpload (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\core\Lifecycle.js:80:9) at async Lifecycle.start (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\core\Lifecycle.js:26:13) at async PicGo.upload (D:\Program Files\PicGo\resources\app.asar\node_modules\picgo\dist\src\core\PicGo.js:205:32) at async Object.upload (D:\Program Files\PicGo\resources\app.asar\background.js:36:29196) at async Pt (D:\Program Files\PicGo\resources\app.asar\background.js:36:31625) at async D:\Program Files\PicGo\resources\app.asar\background.js:36:32625 -------Error Stack End------- 2022-03-22 21:20:55 [PicGo WARN] [PicGo Server] upload failed, see picgo.log for more detail ↑ 2022-03-22 21:24:09 [PicGo SUCCESS] 插件更新成功 2022-03-22 21:24:18 [PicGo INFO] [PicGo Server] is listening at 36677 2022-03-22 21:24:35 [PicGo INFO] detect second instance

Molunerfinn commented 2 years ago

目前beta.4对相册数据采用了原子读写,理论上相册数据不会再出现丢失的情况。

后续beta.5会对配置文件也做同样的改造

Molunerfinn commented 2 years ago

beta.5会引入原子操作修复配置文件丢失的问题。相关commit已经提交,等待后续版本更新即可。

aliuq commented 1 year ago

今天我也遇到了丢失配置文件的问题,11月3号的时候还上传过sm.ms,今天打开配置也不见了 image