关于FSGithubPNG生成外链时描述出现路径问题

embedded/2025/2/20 14:15:18/

20250213145658506304.png

之前在FSGithubPNG上添加一个新的功能,就是上传图片后生成的外链可以是Markdown格式的图片链接,

如下:

![美丽的风景](https://example.com/path/to/your/image.jpg)

图片描述在不同系统下的差异

在 macOS 系统中,图片外链的图片描述为图片名称;而在 Windows 系统中,图片描述为带全路径的名称,如下所示:

![C:\Users\ADMINI~1\AppData\Local\Temp\tmp_rqboyon.png](https://cdn.jsdelivr.net/gh/ueYao/image-hosting@main/blog/2025/02/20250212202236212250.png)

C:\Users\ADMINI~1\AppData\Local\Temp\tmp_rqboyon.png

我希望上述的图片外链中描述只应该有图片的名称,原始代码如下:

python"> # 获取当前日期now = datetime.datetime.now()year = str(now.year)month = str(now.month).zfill(2)# 生成唯一文件名original_name = self.file_path.split("/")[-1]extension = original_name.split(".")[-1]unique_name = f"{CommonUtil.get_current_time_str()}.{extension}"base_folder = self.github_root_foldertarget_path =f"{base_folder}/{year}/{month}/{unique_name}" if base_folder else f"{year}/{month}/{unique_name}"

之前是取original_name为图片的描述,但是现在已经用unique_name代替原来的文件名,

python"> if response.status_code == 201:download_url = response.json().get("content").get("download_url")if self.github_cdn_checked:image_url = download_url.replace("https://raw.githubusercontent.com/","https://cdn.jsdelivr.net/gh/").replace(f"{self.github_repo}/",f"{self.github_repo}@")logger.info(f"CDN 加速jsDelivr:{image_url}")else:image_url = download_urllogger.info(f"上传成功!图片外链:{image_url}")if self.github_markdown_checked:# 原始代码#image_url = f"![{original_name}]({image_url})"# 修改代码image_url = f"![{unique_name}]({image_url})"logger.info(f"上传成功!图片外链,Markdown 语法:{image_url}")self.upload_finished.emit(f"上传成功!图片外链:\n{image_url}")

当上传图片成功(状态码为 201)时,获取下载链接。若开启 CDN 加速,对下载链接进行替换以使用 jsDelivr CDN。如果开启了生成 Markdown 格式链接的选项,将原本使用原始文件名作为图片描述,修改为使用唯一文件名作为图片描述。

最终修改后,上传图片后,图片的外链如下图

20250213143725216609.png

源码托管地址:https://github.com/flowstone/FSGithubPNG


http://www.ppmy.cn/embedded/162434.html

相关文章

关于post和get的请求参数问题

今天在和泓宇交流的时候,谈到了关于postman测试接口的问题。我昨天在postman测试的时候,对于条件查询不知道怎么测试,脑子里很混乱。今天,泓宇借着条件查询这个机会给我讲了讲get和post的请求参数的知识,趁着现在有记忆…

动态建表并插入数据

Service层根据解析到的数据在Mysql数据库中动态建表并插入数据 以Easy Excel解析得到的文件为例 Slf4j Service public class ExcelImportServiceImpl implements ExcelImportService {Autowired private ExcelImportDao dao; Value("${source.url}") private Stri…

vue中使用lodash的debounce(防抖函数)

1、安装 npm i --save lodash.debounce2、引入 import debounce from lodash.debounce3、使用 <van-search v-model"searchValue" placeholder"输入姓名或工号" inputhandleInput />第一种&#xff1a; handleInput: debounce(function (val) {c…

京东获得JD商品详情 API 返回值说明||京东API接口

item_get-获得JD商品详情 .jd.item_get 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_sh…

Reasoning in High Gear 推理加速发展

Reasoning in High Gear 推理加速发展 关键信息&#xff1a;OpenAI推出GPT - 3 - mini&#xff0c;它是GPT - 1模型后续版本&#xff0c;在速度、成本及特定领域能力上有显著优势。 模型特性 推理强度可选&#xff1a;提供低、中、高三个推理 “强度” 级别&#xff0c;不同级别…

JVM——类的生命周期

目录 生命周期的概述&#xff1a; 加载阶段: 连接阶段: 1、验证&#xff1a; 2、准备&#xff1a; 3、解析 初始化阶段: 总结&#xff1a; 类的生命周期描述了一个类加载、使用、卸载的整个过程。 生命周期的概述&#xff1a; 类的生命周期&#xff1a; 可以被看做是5个或者7个…

【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)——4.2 LSTM的引入与解决长期依赖问题的方法】

在人工智能的璀璨星空中,深度学习模型犹如一颗颗耀眼的星辰,引领着技术的革新。而在处理序列数据的领域中,循环神经网络(RNN)无疑是那颗最为亮眼的星星。然而,即便是这样强大的模型,也面临着一些棘手的问题,其中最突出的便是长期依赖问题。今天,我们就来深入探讨一下长…

无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架

Solon 框架&#xff01; Solon 是新一代&#xff0c;Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目&#xff08;最近“杭州六小龙”很火啊&#xff0c;我们也是杭州的哦&#xff09;。从零开始构建&#xff08;No Spring、No Java-EE、No Servlet&#…