【Picgo】正确重命名文件,避免重复上传
picgo正确设置重命名文件,避免同文件重复上传
1.问题来源
在之前配置picgo+阿里云oss图床的博客中,我提到了需要开启picgo的时间戳重命名
功能,以避免同名文件冲突。
- 阿里云OSS默认策略:同名文件会被覆盖
现在看来,这个方法还是有一个缺点:那就是没有办法避免同一个文件的多次上传
说白了就是,我有一个图片,结果因为自己不小心多复制了几次,导致picgo多次上传了这个文件。再加上时间戳不同,之前上传的图片并不会被覆盖,而是留在那儿无人问津;
亦或者是开启了typora下图中对于网络位置的图片应用上述规则
,同一个图片需要在一篇文章中出现两次,复制的时候,因为开启了该策略,typora自动帮你又上传了一遍;
1.1 说明
阿里云OSS的空间是要付费的!对于个人博客图床而言,或许并不需要多少空间(本人使用阿里云OSS做图床已有1年,才用了980mb)
今天为了迁移其中一个bucket,发现了里面有非常非常多的重复文件,文件大小内容完全一致,这就是无意义的空间浪费,对于容量计费的oss来说,这可都是💴啊!
所以我们需要一个标识文件的方法,避免同一个文件的多次上传。
比较好的办法,那就是用文件的hash值来命名这个文件。此时,同一文件的hash值是一样的,上传到oss里面之后会直接覆盖,并不会多占用一份空间!我们的目的也就达到了
2.使用picgo插件解决
2.1 安装
我的picgo是2.3.1
版本的,能直接在插件市场安装
安装好了之后,在这里配置
2.2 配置
遵循仓库readme里面的配置方法
这里我选择了比较简单的配置方法,年+月+哈希值
1 | {y}/{m}/{hash} |
这么做是为了避免hash值碰撞,虽然同一人能人工弄出两个hash碰撞的图片的可能性及其低,但加上一个年份和月份,可能性就更低了😂
这样就能保证在同一月上传的图片中,如果有相同图片会直接覆盖,不会多占用一份空间。
至于其他选项,参考文档。个人觉得没有太大必要,毕竟都上传到图床了,谁还管这个文件的原名和本地存储路径是什么呢?
3.收工
设置完毕之后,现在上传的图片命名格式如下
1 | 20234d48b94bd1054488005eb239741c807d.png |
再次手动上传一遍这个文件,发现返回的url是相同的
我们的目的就达到了!