在选项中提示本地和同步存储容量使用情况
切换成手动同步吧
同步功能需要连接到谷歌服务器,在部分国家地区网络环境下,可能出现连接不稳定的情况,可以试着使用代理等。若连接正常时,设置更改后一般仅仅几秒钟即可同步到另一台设备,本来就不存在“自动”或“手动”一说。
我使用代理了 根本同步不上去 先别急着关
每次同步都是把服务器上的配置下载下来覆盖本地的,本地的修改根本同步不上去
您的意思是说,两台设备的情况下,两边同时做了修改,但结果其中一个的覆盖了另一个吗?
我现在的情况是,目前同步了两个配置,添加的三个PAC配置的时候,总是同步不上去,被服务器上的配置覆盖了。 是不是PAC配置有同步问题? 不是被其它电脑覆盖了,我有两台电脑同步
请新建第三个 PAC 文件后,先等一会。如果被覆盖,请用弹出菜单中的错误日志功能导出一份日志并上传至 https://gist.github.com/ ,以供分析问题。在此过程中,请不要在另一台设备上操作。
如果 Chrome 浏览器开着的时候不会被覆盖,重启后才会被覆盖的话,请提供重启前后各一份日志,谢谢。
另外,我个人比较怀疑是撞到了存储频率或者容量限制……也可以试着在 SwitchyOmega 设置页面按 F12 打开开发者工具,选择Console控制台,并输入以下代码回车chrome.storage.sync.getBytesInUse(console.log.bind(console))即可显示使用了多少存储容量,请把结果数字告诉我。
我明白什么原因了,应该是同步的数据量太大了,我的PAC文件很大
https://gist.github.com/lygstate/1f59768085d5383e9e0e 你试试添加这个pac文件,看是否能同步
数据量太大了,估计已经达到单项设置存储限额了。按照Chrome 扩展同步存储限制:
总容量上限: 102,400 Bytes = 100KB 每项设置容量上限: 8,192 Bytes = 8KB 最大项目数量: 512 项
也就是说, 每个情景模式最多只能使用8KB存储空间 ,且最多不能超过 450 个情景模式(假设其他简单选项使用了62项)。
暂时而言,我推荐这么大的PAC文件还是不要放进选项里了。可以放在一个本地文件里,并在 PAC 网址里填上 file:///D:/a.pac (Windows) 或 file:///home/example/a.pac (*nix),这样就只会同步文件路径上去,而不会同步整个PAC内容。当然这样的话就要把文件手动拷贝到另一台设备上了……
所以,退一步来说,我认为目前扩展存在的缺陷是:
- 对于无法放入存储空间的情景模式,不应该同步到服务器,但也 不应该自动删除 。这个是主要问题。
- 没有提示每个情景模式的容量限制。当容量超过限额时,应该提示用户同步失败,且告知用户此情景模式将不会被同步。
- 没有提示总的存储容量限制。当容量超过限额时,应该提示用户新增的情景模式将无法同步。
- (可选)允许用户手动设置某个情景模式不同步。
另外本地存储其实也有一个 5MB 的限制,只是比较少有人达到……到达此限制后,即使不开启同步,估计也没法正常使用扩展了……
这样吧,我先快速做一个简单的判断来解决第一个问题。
- 当单个情景模式容量超过限额时,此情景模式将会自动被设置为禁用同步。在选项的那个情景模式设置页面,将会看到警告。禁用同步的情景模式不会被上传至服务器,也不会被服务器上的同名情景模式覆盖,不会因为同步而被删除。
按以上方案,已经暂时解决问题。请等待下一次更新发布。(目标版本 v2.3.3 ,预计发布时间:1小时以内。)
由于解决方案不完善,因此重新开启 issue 。下一步的改进:
- 在选项中,提示每个情景模式的已使用容量和容量限制。当用户修改情景模式,减少容量占用时,应该给用户一个按钮,重新启用同步。
- 允许用户手动禁用某个情景模式的同步,并且之后可重新启用。
- 在选项界面中,提示总的存储容量限制(包括本地限制和同步限制)。当容量超过限额时,应该提示用户新增的情景模式将无法同步。
v2.3.3 已经发布。
对于pac rulelist 通过在线更新的情景模式 是否只备份更新的url而不备份里面的内容
这样对于大部分人来说 情景模式的备份应该就不会有问题了
@avkiller :+1:
@avkiller 从最开始就已经这样了。如果有更新URL则不会备份PAC脚本内容。
我不知道现在同步的机制是什么样的,不过建议能不能改成上传和下载两个按钮,然后显示一下目前服务器版本的上传时间和hostname(以后还可以考虑增加回滚机制),不然比如我在两台机器上离线状态下做了不同的修改怎么解决冲突?
@ztq56 同步机制没有那么复杂的,没办法做到显示上传时间和hostname,也不能手动查询服务器上的数据(必须等待服务器自动推送数据到本地)。两台机器上离线状态下做了不同的修改这件事情是没什么办法的,目前情景模式是按照修改时间优先使用最近的,其他选项是顺其自然……
我发现autoproxy模式下使用了pac如果pac内容太多也没法同步
数据量太大了,估计已经达到单项设置存储限额了。按照Chrome 扩展同步存储限制:
总容量上限: 102,400 Bytes = 100KB 每项设置容量上限: 8,192 Bytes = 8KB 最大项目数量: 512 项
也就是说, 每个情景模式最多只能使用8KB存储空间 ,且最多不能超过 450 个情景模式(假设其他简单选项使用了62项)。
暂时而言,我推荐这么大的PAC文件还是不要放进选项里了。可以放在一个本地文件里,并在 PAC 网址里填上
file:///D:/a.pac(Windows) 或file:///home/example/a.pac(*nix),这样就只会同步文件路径上去,而不会同步整个PAC内容。当然这样的话就要把文件手动拷贝到另一台设备上了……所以,退一步来说,我认为目前扩展存在的缺陷是:
- 对于无法放入存储空间的情景模式,不应该同步到服务器,但也 不应该自动删除 。这个是主要问题。
- 没有提示每个情景模式的容量限制。当容量超过限额时,应该提示用户同步失败,且告知用户此情景模式将不会被同步。
- 没有提示总的存储容量限制。当容量超过限额时,应该提示用户新增的情景模式将无法同步。
- (可选)允许用户手动设置某个情景模式不同步。
数据和存储分开进行能行得通吗? (解决单个自定义规则太大导致不能同步的问题)
const transPacDataToGoogleStorageFiles = async (content: string): File[] => {
// * 按8kb切分,甚至可以做压缩
}
const transGoogleStorageFilesToPacData = async (files: File[]): string => {
// * 转回来
}