typora图床搭建+完美解决PicGo图片上传重命名问题

news/2025/3/6 1:10:01/文章来源:https://www.cnblogs.com/chenjiabin/p/18754087

typora图床搭建+完美解决PicGo图片上传重命名问题

typora设置

image-20250305015559425

上图中第五步需要你下载PicGo应用并安装

PicGo配置

下载安装好后得到如图界面

image-20250305020006330

这时需要对该软件进行配置

文档在这里https://picgo.github.io/PicGo-Doc/zh/guide/config.html

image-20250305020222818

image-20250305020335029

然后就是图床的购买,我用的是腾讯云cos对象存储

image-20250306003515132

创建桶一路默认选项即可

image-20250306003725325

三个都要买

  1. 存储容量->标准存储容量包
  2. 流量->外网下行流量包
  3. 读写请求->标准存储请求包

根据需求购买即可

注意:存储容量->标准存储容量包免费送50G

购买后根据上述文档配置即可

image-20250306004303670

配置信息在这里

配置好后就已经可以上传了

image-20250306004341625

解决PicGo图片上传重命名问题

描述一下问题所在,一般情况下图床是不允许上传重名文件的,所以PicGo设置中可以开始时间戳重命名.

但是如果是两个相同文件的话每次都会上传,因为重命名它们的时间戳不一样.这样会浪费流量和资源.

所以这时候就用到了插件设置功能.只需要下载一个插件,如图:

image-20250306004902453

下载后点击,如图进行配置即可

image-20250306004959358

输入如图

image-20250306005032296

点击可复制

{y}/{m}/{hash}

如果你想知道原理可以看下去

这是插件GitHub地址 https://github.com/liuwave/picgo-plugin-rename-file#readme

A PicGo plugin for customizing file name.

可以很自定义生成文件存储路径的插件,文件(包括路径)名称支持日期、随机字符串、文件MD5、原文件名、原文件目录结构等规则。

更多需求,欢迎PR或提ISSUE。


例如

2020/07/24/674b96a992fac527a8332ac4adc89a14-filename-fa2c97-19-44-17.png

修改配置参数后生效

配置

format,文件(路径)格式,默认为空,自定义文件路径及文件名,例如:

fix-dir/{localFolder:2}/{y}/{m}/{d}/{h}-{i}-{s}-{hash}-{origin}-{rand:6}

上传文件名为/images/test/localImage.jpg的文件时,会重命名为

fix-dir/images/test/2020/07/24/21-40-31-36921a9c364ed4789d4bc684bcb81d62-localImage-fa2c97.jpg

命名规则:

  • {y} 年,4位
  • {m} 月,2位
  • {d} 日期,2位
  • {h} 小时,2位
  • {i} 分钟,2位
  • {s} 秒,2位
  • {ms} 毫秒,3位(v1.0.4)
  • {timestamp} 时间戳(秒),10位(v1.0.4)
  • {hash},文件的md5值,32位
  • {origin},文件原名(会去掉后缀)
  • {rand:}, 随机数,表示个数,默认为6个,示例:{rand:32}、
  • {localFolder:}, 表示层级 ,默认为1,示例:{localFolder:6}、

{hash}的作用可以看作是根据文件内容生成一个唯一标识一个文件的32位数字

所以同一个文件内容不变,hash值也不会变.

至此,完.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894267.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[NSSCTF 2022 Spring Recruit]ezgame(两种解法)

可以看到,这个题目一打开就是一道简单的小游戏,玩了一会没看到什么提示就打开页面源码看看有没有提示可以看到只要分数超过65就会告诉你flag,但是真的自己去玩基本上是玩不到65分的,于是我尝试修改页面代码看能不能绕过 解法1 由于页面爆炸了,这里就不附上截图,反正修改分…

【转载】VPS、ECS、Docker和k8s

图片及内容均来源于小林coding公众号:面试官:Docker 和 k8s 之间是什么关系? 物理服务器 一台看得见摸得着的机器,其实就是云厂商页面里提到的物理服务器或物理机。不同厂商叫法不同,有的厂商叫它独立服务器。 vps 和 ecs VPS(Virtual Private Server,虚拟专用服务器)。…

【云原生】VPS、ECS、Docker和k8s

图片及内容均来源于小林coding公众号:面试官:Docker 和 k8s 之间是什么关系? 物理服务器 一台看得见摸得着的机器,其实就是云厂商页面里提到的物理服务器或物理机。不同厂商叫法不同,有的厂商叫它独立服务器。 vps 和 ecs VPS(Virtual Private Server,虚拟专用服务器)。…

FastAPI 查询参数完全指南:从基础到高级用法

title: FastAPI 查询参数完全指南:从基础到高级用法 🚀 date: 2025/3/6 updated: 2025/3/6 author: cmdragon excerpt: 探讨 FastAPI 查询参数的核心机制,涵盖从必需与可选参数、默认值到多参数处理的全方位知识。通过详细的代码示例、课后测验和常见错误解决方案,通过类…

[HNCTF 2022 WEEK3]ssssti

[HNCTF 2022 WEEK3]ssssti 首先打开题目这边翻译一下,server-side template injection是服务器模版注入,立马能反应过来是ssti(一般是flask框架) 不管了,直接丢fenjing里面一把梭哈开始扫描了1,不得不感慨fenjing的waf绕过能力是真强一些常见的危险payload也自动帮你试完了…

[安洵杯 2020]Normal SSTI

[安洵杯 2020]Normal SSTI好题目,直接把参数给我了都不用找了打开fenjing直接一把梭哈

[BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5一个输入框,无论输入什么都没有回显,使用yakit抓包看看根据返回的数据包可以得知其sql查询语句,我们需要尝试绕过查询语句来获得线索,md5()函数中$pass参数为输入的参数,而true代表一种模式,将字符串md5哈希后转化为二进制类型 MD5语法 标准格式 md5…

【多线程】volatile关键字详解

volatile的作用volatile主要用于解决可见性和有序性的问题,但不保证原子性可见性:线程在操作变量时,会将主存中的变量拷贝一份到本地存储;修改有再找时机写回主存(不可控),这样多线程并发时会导致其他线程看到的数据和当前线程不一致 使用volatile关键字修饰变量,可使得每…

WiFiGrab教程2:一键抓包5G并使用字典破解全流程

本文使用WiFiGrab抓取5G无线网络的握手包,实验对象为自己的路由器,并结合EWSA进行字典攻击,演示暴力破解的原理和全流程操作。WiFiGrab抓包5G 本文使用WiFiGrab抓取5G无线网络的握手包,实验对象为自己的路由器,并结合EWSA进行字典攻击,演示暴力破解的原理和全流程操作。软…

phylip 中利用NJ法构建进化树

001、测试文件vcf文件(base) [b20223040323@admin2 02_NJ_tree]$ ls outcome.vcf 002、格式转换;输入文件为vcf文件run_pipeline.pl -Xms1G -Xmx5G -importGuess outcome.vcf -ExportPlugin -saveAs sequences.phy -format Phylip_Inter ## 格式转换 003、

vue的深度学习

vue的深度学习 本次学习了vue脚手架的知识,使用的是选项api,初步分析 对于脚手架目录进行简单分析 src:用于存放源码,我们一般写代码的地方,其中的app.vue是根组件,components中存放其他组件,其他组件可以加到根组件下方 <template><div class="fullName"&g…

代码随想录算法训练营day23 | 39. 组合总和、40.组合总和II、131.分割回文串

组合总和点击查看代码 class Solution { public:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int &target, int sum, int startIndex) {//由于for循环条件已经提前做了递归终止判断,故这里不用…