为了白嫖 https 的图床, 顺手写了个 Picgo 的插件

在这里插入图片描述

🧠 前言

本文没有什么深奥的技术点,纯粹是个人使用 Obsidian + Hexo 搭博客 + 图片服务的折腾记录,顺便+1篇博客写作练习。


背景

一直以来,我用 Obsidian 做“第二大脑”做知识沉淀。某天,「张三」想看我的一些笔记文章,于是我顺手用 Hexo 搭了个 博客,还加了 HTTPS。之前文章中插图都是用免费的 七牛云 HTTP 图床 + PicGo 上传,但是 HTTPS 的站点里图片全部挂了 🤣


初始方案:Nginx 反向代理七牛 HTTP 图床

我想走最简单的方式,用自己的服务器做 HTTPS 代理,流量转发给七牛。配置如下:

server {
    listen 443 ssl http2;
    server_name qiniussl.iamsb.top;

    ssl_certificate     conf.d/cert/qiniussl.iamsb.top.pem;
    ssl_certificate_key conf.d/cert/qiniussl.iamsb.top.key;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout  10m;
    ssl_protocols        TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass       http://qiniu.iamsb.top;
        proxy_set_header Host            qiniu.iamsb.top;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

✅ 优点

  • 配置简单,不改 PicGo 上传逻辑;
  • 不需迁移已有图片。

❌ 缺点

  • 我那台小鸡服务器,带宽和性能都拉满;
  • 加载一张图要等好几秒,非常影响浏览体验。

最终方案:找免费 HTTPS 图床 + 自定义 PicGo 插件

我转念一想:干脆省省事,找个免费又支持 HTTPSAPI 无限制的图床,先临时把图托管上去, 后续在找找其他能安全存放图片的方案。后来找到了「16 图床」,初印象还好那就它了。

为了继续保留 PicGo 上传体验,就把 PicGo 稍微改造一下,写了个自定义插件将图片上传到 16图床 上

插件源码地址:

➡️ GitHub: Layouwen/picgo‑plugin‑custom‑api‑uploader


总结

阶段方案优点缺点
初期Nginx 反向代理七牛 HTTP 图床简单、迁移无痛服务器性能和带宽受限
最终方案免费 HTTPS 图床(16 图床)+ PicGo上传体验一致,访问速度还行需要维护 PicGo 自定义插件, 也不知道靠不靠谱

若你也正考虑从 Obsidian 搭博客并处理图片问题,希望这篇记录能给你一些参考。欢迎留言讨论~

相关链接

Github 主页

上文提到到的博客

16图床

### 关于 Cursor 的概述 Cursor 是一款基于 Visual Studio Code 的开发工具,其核心在于通过集成大型语言模型(LLM)来增强开发者体验[^1]。它提供了多种功能以提高编码效率,例如: - **Tab 补全**:利用上下文预测完成代码片段。 - **内联编辑**:允许直接在代码中进行实时修改和预览。 - **聊天侧边栏**:提供交互式的 AI 辅助编程支持。 - **Composer 功能**:用于生成复杂代码结构。 这些特性使得 Cursor 成为了 GitHub Copilot 的有力竞争对手之一。 --- ### Android 中 Cursor 资源管理的重要性 在 Android 开发中,`Cursor` 对象通常用于处理数据库查询结果集。然而,如果不正确地管理和释放 `Cursor` 资源,则可能导致严重的性能问题甚至内存泄漏[^2]。以下是几个需要注意的关键点: #### 1. 及时关闭资源 当不再需要使用 `Cursor` 时,应立即调用其 `close()` 方法以释放关联的缓冲区和其他系统资源。即使某些实现会在对象销毁时自动执行清理操作(如 SQLiteCursor 的 `finalize()` 方法),这种依赖行为并不可靠且效率低下。 #### 修正后的示例代码 下面展示了一个安全关闭 `Cursor` 的最佳实践: ```java try (Cursor cursor = db.query("table_name", null, null, null, null, null, null)) { while (cursor.moveToNext()) { // 处理每一行数据... } } catch (Exception e) { Log.e("DatabaseError", "Query failed: ", e); } // 使用 try-with-resources 自动确保 Cursor 在异常情况下也能被正确关闭 ``` 上述代码采用了 Java 的 Try-With-Resources 特性,在任何情形下都能保障 `Cursor` 得到妥善处置。 --- ### Cursor 工具快捷键总结 除了作为 Android 数据库游标的含义之外,“Cursor” 还可以指代前述提到的一款智能化 IDE 插件。该插件定义了一系列高效的键盘快捷方式来辅助日常开发工作流[^3][^4]: | 快捷键 | 功能描述 | |--------------|------------------------------| | `Tab` | 上下文感知型代码补全 | | `Ctrl+K` | 针对当前选中的代码块进行优化 | | `Ctrl+L` | 执行整个项目的健康状况扫描与报告 | | `Ctrl+i` | 支持多文件间的同步协作编辑模式 | 以上组合能够显著改善程序员的工作效能并减少重复劳动量。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值