<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Wang&#39;s blog</title>
  
  <subtitle>愿你出走半生，归来仍是少年</subtitle>
  <link href="https://blog.661212.xyz/atom.xml" rel="self"/>
  
  <link href="https://blog.661212.xyz/"/>
  <updated>2025-04-02T20:28:20.589Z</updated>
  <id>https://blog.661212.xyz/</id>
  
  <author>
    <name>Wang</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>[GitHub项目推荐]CloudPaste：基于 Cloudflare 的在线剪贴板与文件分享服务</title>
    <link href="https://blog.661212.xyz/articles/[GitHub%E9%A1%B9%E7%9B%AE%E6%8E%A8%E8%8D%90]CloudPaste%EF%BC%9A%E5%9F%BA%E4%BA%8E%20Cloudflare%20%E7%9A%84%E5%9C%A8%E7%BA%BF%E5%89%AA%E8%B4%B4%E6%9D%BF%E4%B8%8E%E6%96%87%E4%BB%B6%E5%88%86%E4%BA%AB%E6%9C%8D%E5%8A%A1"/>
    <id>https://blog.661212.xyz/articles/[GitHub%E9%A1%B9%E7%9B%AE%E6%8E%A8%E8%8D%90]CloudPaste%EF%BC%9A%E5%9F%BA%E4%BA%8E%20Cloudflare%20%E7%9A%84%E5%9C%A8%E7%BA%BF%E5%89%AA%E8%B4%B4%E6%9D%BF%E4%B8%8E%E6%96%87%E4%BB%B6%E5%88%86%E4%BA%AB%E6%9C%8D%E5%8A%A1</id>
    <published>2025-04-01T20:12:24.522Z</published>
    <updated>2025-04-02T20:28:20.589Z</updated>
    
    <content type="html"><![CDATA[<p><code>该项目目前仍处于开发阶段，部署方式及流程，可能与文章有所差异，且可能遇到未知错误</code></p><p><img src="https://img.icons8.com/dusk/100/paste.png" alt="封面图片" /></p><p><a href="https://github.com/ling-drag0n/CloudPaste">项目链接</a></p><h2 id="简介ai"><a class="markdownIt-Anchor" href="#简介ai"></a> 简介[AI]</h2><p>在数字时代，我们每天都需要一个便捷且高效的工具来管理文本和文件。今天，我向大家推荐一个由第三方开发的优秀项目——<strong>CloudPaste</strong>。这是一款基于 Cloudflare 的在线剪贴板和文件分享服务，集成了 Markdown 编辑器和强大的文件上传功能。本文将为你详细解析 CloudPaste 的部署方法、核心优点与不足之处，并通过图文并茂的方式向你展示其魅力，帮助你决定是否尝试使用这一工具。</p><h2 id="展示"><a class="markdownIt-Anchor" href="#展示"></a> 展示</h2><p><img src="https://files.661212.xyz/file/1743739716037_Screenshot_2025-04-04-12-07-53-623_com.microsoft.emmx-edit.jpg" alt="图片" /></p><h2 id="项目概述"><a class="markdownIt-Anchor" href="#项目概述"></a> 项目概述</h2><p>CloudPaste 旨在提供一个便捷、灵活且安全的在线剪贴板服务。项目不仅支持 Markdown 编辑、数学公式、流程图、思维导图等丰富的编辑功能，同时还整合了多种 S3 存储服务（如 Cloudflare R2、Backblaze B2、AWS S3 等）的文件上传和管理。无论你是需要快速记录灵感，还是在跨平台间分享文件，这个工具都能满足你的需求。</p><hr /><h2 id="部署方式"><a class="markdownIt-Anchor" href="#部署方式"></a> 部署方式</h2><p><a href="https://https://github.com/ling-drag0n/CloudPaste?tab=readme-ov-file#-%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B">详见项目文档，本文仅做摘要</a></p><p>CloudPaste 提供了<strong>自动部署</strong>与<strong>手动部署</strong>两种方式，以适应不同用户的需求。下面简单介绍两种方式的主要步骤：</p><h3 id="1-自动部署推荐"><a class="markdownIt-Anchor" href="#1-自动部署推荐"></a> 1. 自动部署（推荐）</h3><h4 id="后端自动部署"><a class="markdownIt-Anchor" href="#后端自动部署"></a> 后端自动部署</h4><ul><li><strong>GitHub Actions 集成</strong>：将代码推送到指定分支时，GitHub Actions 将自动：<ul><li>检出代码、设置 Node.js 环境</li><li>安装依赖并创建 D1 数据库（如果不存在）</li><li>用 <code>schema.sql</code> 初始化数据库</li><li>自动部署 Cloudflare Worker，并配置自定义域名</li></ul></li><li><strong>安全提示</strong>：部署完成后，请立即修改默认管理员密码（用户名：admin，密码：admin123）。</li></ul><h4 id="前端自动部署"><a class="markdownIt-Anchor" href="#前端自动部署"></a> 前端自动部署</h4><ul><li><strong>Cloudflare Pages 部署</strong>：通过自动工作流，前端代码会在每次推送后自动构建并部署。只需在 Cloudflare Pages 控制面板设置好环境变量（如 <code>VITE_BACKEND_URL</code>）。</li><li><strong>Vercel 部署方案</strong>：也可选择使用 Vercel 平台，设置好 Vite 构建参数后，即可实现前端自动部署。</li></ul><h3 id="2-手动部署"><a class="markdownIt-Anchor" href="#2-手动部署"></a> 2. 手动部署</h3><h4 id="后端手动部署"><a class="markdownIt-Anchor" href="#后端手动部署"></a> 后端手动部署</h4><ul><li>克隆仓库后，在 <code>backend</code> 目录下安装依赖并初始化 D1 数据库。</li><li>登录 Cloudflare 并使用 Wrangler CLI 创建和部署 Worker。</li><li>访问部署 URL 以触发数据库初始化，同样记得修改默认密码。</li></ul><h4 id="前端手动部署"><a class="markdownIt-Anchor" href="#前端手动部署"></a> 前端手动部署</h4><ul><li>在 <code>frontend</code> 目录下安装依赖，并配置好环境变量（如 <code>.env.production</code>）。</li><li>构建项目后，可以通过 Wrangler CLI 或 Cloudflare Dashboard 将生成的静态文件部署到 Cloudflare Pages，Vercel 方案同样可行。</li></ul><hr /><h2 id="cloudpaste-的优点"><a class="markdownIt-Anchor" href="#cloudpaste-的优点"></a> CloudPaste 的优点</h2><h3 id="强大的编辑与分享功能"><a class="markdownIt-Anchor" href="#强大的编辑与分享功能"></a> 强大的编辑与分享功能</h3><ul><li><strong>Markdown 编辑器</strong>：内置 Vditor 编辑器，支持 GitHub 风格的 Markdown 以及数学公式、流程图、思维导图等，满足各种记录与分享需求。</li><li><strong>安全与时效</strong>：支持设置访问密码、过期时间以及最大查看次数，确保内容安全且可控。</li></ul><h3 id="灵活的文件上传与管理"><a class="markdownIt-Anchor" href="#灵活的文件上传与管理"></a> 灵活的文件上传与管理</h3><ul><li><strong>多存储支持</strong>：兼容 Cloudflare R2、Backblaze B2、AWS S3 等多种存储服务，用户可以根据需求自由选择。</li><li><strong>实时反馈</strong>：上传过程中会显示实时进度，并支持文件备注、密码保护、访问统计等功能，极大提升管理体验。</li></ul><h3 id="便捷的操作体验"><a class="markdownIt-Anchor" href="#便捷的操作体验"></a> 便捷的操作体验</h3><ul><li><strong>一键分享</strong>：自动生成短链接和二维码，方便在各个平台快速分享。</li><li><strong>多格式导出</strong>：支持将内容导出为 PDF、Markdown、HTML 格式，方便存档与二次编辑。</li></ul><h3 id="系统与权限管理"><a class="markdownIt-Anchor" href="#系统与权限管理"></a> 系统与权限管理</h3><ul><li><strong>轻量权限管理</strong>：管理员和 API 密钥权限细分，确保不同用户在操作上有明确的权限控制。</li><li><strong>PWA 离线体验</strong>：支持离线使用及安装到桌面，提供更佳的用户体验。</li></ul><hr /><h2 id="cloudpaste-的不足之处"><a class="markdownIt-Anchor" href="#cloudpaste-的不足之处"></a> CloudPaste 的不足之处</h2><p>尽管 CloudPaste 功能丰富，但也存在一些不足：</p><ul><li><strong>部署门槛稍高</strong>：对于没有 Cloudflare 或相关云存储服务经验的用户来说，部署过程中的配置可能需要一定的学习成本。</li><li><strong>安全风险提醒</strong>：初始默认密码较为简单，需要用户在部署后第一时间更改，否则可能存在被恶意访问的风险。</li><li><strong>文档配置较为繁琐</strong>：详细的部署教程虽然完整，但对于初学者来说，可能会显得有些复杂和冗长，需要逐步适应。</li></ul><hr /><h2 id="推荐理由与使用场景"><a class="markdownIt-Anchor" href="#推荐理由与使用场景"></a> 推荐理由与使用场景</h2><p>如果你需要一个：</p><ul><li><strong>灵活</strong>、<strong>安全</strong>的在线剪贴板与文件分享工具，</li><li>或是一个能够支持 Markdown 高级编辑、文件管理与实时数据统计的平台，</li></ul><p>那么 CloudPaste 将是一个不错的选择。它不仅适用于个人记录，也适合团队协作、项目管理等多种使用场景。同时，多平台的部署方式也为技术爱好者提供了更多灵活性，允许你根据实际需求选择自动或手动部署方案。</p><hr /><h2 id="总结"><a class="markdownIt-Anchor" href="#总结"></a> 总结</h2><p>总体来说，CloudPaste 是一款功能全面、部署灵活且安全性较高的在线剪贴板与文件分享服务。它对技术要求较高，适合有一定云服务部署经验的用户尝试。如果你正寻找一款高效的内容管理与分享工具，CloudPaste 值得一试！</p>]]></content>
    
    
    <summary type="html">本文深入解析了 CloudPaste 项目的部署方式、功能优缺点，并通过图文并茂的方式为你展示了这款基于 Cloudflare 的在线剪贴板和文件分享服务，帮助你了解其适用场景与优势。</summary>
    
    
    
    <category term="教程" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="GitHub项目推荐" scheme="https://blog.661212.xyz/categories/GitHub%E9%A1%B9%E7%9B%AE%E6%8E%A8%E8%8D%90/"/>
    
    
    <category term="Cloudflare" scheme="https://blog.661212.xyz/tags/Cloudflare/"/>
    
    <category term="Github项目推荐" scheme="https://blog.661212.xyz/tags/Github%E9%A1%B9%E7%9B%AE%E6%8E%A8%E8%8D%90/"/>
    
    <category term="文件更新" scheme="https://blog.661212.xyz/tags/%E6%96%87%E4%BB%B6%E6%9B%B4%E6%96%B0/"/>
    
    <category term="剪切板" scheme="https://blog.661212.xyz/tags/%E5%89%AA%E5%88%87%E6%9D%BF/"/>
    
    <category term="漂亮" scheme="https://blog.661212.xyz/tags/%E6%BC%82%E4%BA%AE/"/>
    
  </entry>
  
  <entry>
    <title>[续]为高通410随身WiFi扩展接口</title>
    <link href="https://blog.661212.xyz/articles/[%E7%BB%AD]%E4%B8%BA%E9%AB%98%E9%80%9A410%E9%9A%8F%E8%BA%ABWiFi%E6%89%A9%E5%B1%95%E6%9B%B4%E5%A4%9A%E6%8E%A5%E5%8F%A3"/>
    <id>https://blog.661212.xyz/articles/[%E7%BB%AD]%E4%B8%BA%E9%AB%98%E9%80%9A410%E9%9A%8F%E8%BA%ABWiFi%E6%89%A9%E5%B1%95%E6%9B%B4%E5%A4%9A%E6%8E%A5%E5%8F%A3</id>
    <published>2025-01-25T04:40:34.973Z</published>
    <updated>2025-11-29T11:00:56.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>其实早就做好了，但是就是<s>懒得</s>忘记写文章😁</p></blockquote><h3 id="1回顾"><a class="markdownIt-Anchor" href="#1回顾"></a> 1.回顾</h3><p>几个月前曾写过一篇文章提到买了一个<a href="https://blog.661212.xyz/articles/%E9%AB%98%E9%80%9A410%E9%9A%8F%E8%BA%ABWiFi%E8%BE%93%E5%85%A5debian%E7%AE%80%E8%AE%B0">高通410随身WiFi，并且为其刷入了Debian</a>，但是使用起来却有诸多不便，如4G的硬盘确实太小，使用WiFi连接家里的网络还是不太稳定等等</p><p><img src="https://files.661212.xyz/imgs/2025-11/2025-11-29-19-32-57-531_5.jpg" alt="随身WiFi" /></p><p>所以萌生了想扩展它的接口的想法，查阅了网上的一些相关资料和一些大佬的作品之后，我还是自己画一块转接板（因为我的想法很简单，我只需要扩展一个USB接口出来就行了，而现成的都是有很多接口，最主要是零件太多了我<s>不会</s>懒得焊接🤐）</p><h3 id="2动手"><a class="markdownIt-Anchor" href="#2动手"></a> 2.动手</h3><p>决定了要干什么，之后我就开始着手画板了。由于我们的需求很简单，只需要扩展出两个接口，一个用于连接USB设备，一个用于供电。所以电路极其简单，<s>主要是再难的我也不会画</s>  😦</p><p>这里我使用的是嘉立创eda画的板子，网上有很多教程，这里就不再赘述了。</p><p><img src="https://files.661212.xyz/imgs/2025-11/2025-11-29-19-32-57-531_1.jpg" alt="扩展板-正面图1" /></p><h3 id="3配置"><a class="markdownIt-Anchor" href="#3配置"></a> 3.配置</h3><p>在焊接完之后并连上随身WiFi之后，还需要进行一些系统配置才能正常使用。</p><p><img src="https://files.661212.xyz/imgs/2025-11/2025-11-29-19-32-57-531_2.jpg" alt="连接-展示" /></p><p>上图是连接完成的样子，我这里还另外3d打印了一个外壳</p><p>紧接着是软件配置，随身WiFi默认的接口模式是被动模式，我们这里需要给他改成主动模式（host）<br /><code>echo host &gt; /sys/kernel/debug/usb/ci_hdrc.0/role</code><br />可以把上述命令加入启动脚本<code>/etc/rc.local</code>中，即可在每次开机自动切换</p><p>现在应该就能识别到USB设备了，这里我连接了一个U盘</p><p><img src="https://files.661212.xyz/imgs/2025-11/2025-11-29-19-32-57-531_4.jpg" alt="U盘-df-h" /></p><p>然后根据你的U盘文件系统对应的挂载命令，这里不再过多阐述，不过将其写到USB的配置文件中，可以在每次开机前自动挂载</p><h3 id="4大功告成"><a class="markdownIt-Anchor" href="#4大功告成"></a> 4.大功告成！</h3><p>现在你已经完成了所有步骤，并成功识别到了U盘</p><p>当然你也可以使用其他大佬画的板子，扩展出网卡等各种其他接口，我这里因为没有需要~~（其实是懒）~~，就没有继续做了</p><p><img src="https://files.661212.xyz/imgs/2025-11/2025-11-29-19-32-57-531_3.jpg" alt="运行时间图" /></p><p>最后我又写了一些WiFi自动重连之类的脚本来让它更稳定的工作，至此，随着WiFi的折腾也就告一段落了</p>]]></content>
    
    
    <summary type="html">为高通410随身WiFi扩展更多接口</summary>
    
    
    
    <category term="教程" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="随身WiFi" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/%E9%9A%8F%E8%BA%ABWiFi/"/>
    
    
    <category term="免费" scheme="https://blog.661212.xyz/tags/%E5%85%8D%E8%B4%B9/"/>
    
    <category term="debain" scheme="https://blog.661212.xyz/tags/debain/"/>
    
    <category term="410" scheme="https://blog.661212.xyz/tags/410/"/>
    
    <category term="随身WiFi" scheme="https://blog.661212.xyz/tags/%E9%9A%8F%E8%BA%ABWiFi/"/>
    
    <category term="扩展板" scheme="https://blog.661212.xyz/tags/%E6%89%A9%E5%B1%95%E6%9D%BF/"/>
    
    <category term="嘉立创" scheme="https://blog.661212.xyz/tags/%E5%98%89%E7%AB%8B%E5%88%9B/"/>
    
  </entry>
  
  <entry>
    <title>高通410随身WiFi刷入Debian简记</title>
    <link href="https://blog.661212.xyz/articles/%E9%AB%98%E9%80%9A410%E9%9A%8F%E8%BA%ABWiFi%E8%BE%93%E5%85%A5debian%E7%AE%80%E8%AE%B0"/>
    <id>https://blog.661212.xyz/articles/%E9%AB%98%E9%80%9A410%E9%9A%8F%E8%BA%ABWiFi%E8%BE%93%E5%85%A5debian%E7%AE%80%E8%AE%B0</id>
    <published>2024-08-25T04:40:34.973Z</published>
    <updated>2024-08-26T21:27:42.598Z</updated>
    
    <content type="html"><![CDATA[<h2 id="鉴于网上已有很多教程这里简要的记录一下步骤"><a class="markdownIt-Anchor" href="#鉴于网上已有很多教程这里简要的记录一下步骤"></a> 鉴于网上已有很多教程，这里简要的记录一下步骤</h2><p>仅限高通骁龙410</p><p><img src="https://files.661212.xyz/imgs/2025-11/2025-11-29-19-32-57-531_5.jpg" alt="随身WiFi" /></p><p>1.使用miko等工具全量备份，以防变砖</p><p>2.[选]拆机，确认版号(有一些默认不开adb，需提取system改配置文件 或者 输入别人改好的system)</p><p>3.选择合适的系统镜像刷入，如果不插卡可以干掉为modem预留的ram，还可以小小的超一下频</p><p>4.[选]魔改散热</p><p>5.进入系统后配置网络，就可以找个角落插着了</p><hr /><h2 id="关闭led可以找相关教程自定义echo-none-sysclassledsbluewifitriggerecho-none-sysclassledsredostrigger"><a class="markdownIt-Anchor" href="#关闭led可以找相关教程自定义echo-none-sysclassledsbluewifitriggerecho-none-sysclassledsredostrigger"></a> 关闭led（可以找相关教程自定义）<br />echo none &gt; /sys/class/leds/blue:wifi/trigger<br />echo none &gt; /sys/class/leds/red:os/trigger</h2><p>待补充…</p>]]></content>
    
    
    <summary type="html">高通410随身WiFi刷入Debian简记</summary>
    
    
    
    <category term="教程" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="随身WiFi" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/%E9%9A%8F%E8%BA%ABWiFi/"/>
    
    
    <category term="Debian" scheme="https://blog.661212.xyz/tags/Debian/"/>
    
    <category term="410" scheme="https://blog.661212.xyz/tags/410/"/>
    
    <category term="随身WiFi" scheme="https://blog.661212.xyz/tags/%E9%9A%8F%E8%BA%ABWiFi/"/>
    
  </entry>
  
  <entry>
    <title>Cloudflare pages 简单搭建有统计功能的漂亮的短链接服务</title>
    <link href="https://blog.661212.xyz/articles/Cloudflare%20pages%20%E7%AE%80%E5%8D%95%E6%90%AD%E5%BB%BA%E6%9C%89%E7%BB%9F%E8%AE%A1%E5%8A%9F%E8%83%BD%E7%9A%84%E6%BC%82%E4%BA%AE%E7%9A%84%E7%9F%AD%E9%93%BE%E6%8E%A5%E6%9C%8D%E5%8A%A1"/>
    <id>https://blog.661212.xyz/articles/Cloudflare%20pages%20%E7%AE%80%E5%8D%95%E6%90%AD%E5%BB%BA%E6%9C%89%E7%BB%9F%E8%AE%A1%E5%8A%9F%E8%83%BD%E7%9A%84%E6%BC%82%E4%BA%AE%E7%9A%84%E7%9F%AD%E9%93%BE%E6%8E%A5%E6%9C%8D%E5%8A%A1</id>
    <published>2024-07-18T05:48:12.778Z</published>
    <updated>2024-07-18T06:16:07.853Z</updated>
    
    <content type="html"><![CDATA[<h3 id="演示"><a class="markdownIt-Anchor" href="#演示"></a> 🪧演示</h3><p><img src="https://imgs.661212.xyz/file/a5ecec9475c58d0d87255.jpg" alt="a5ecec9475c58d0d87255.jpg" /></p><p><a href="https://github.com/ccbikai/Sink">项目链接</a> | <a href="https://blog.661212.xyz/articles/Cloudflare%20pages%20%E7%AE%80%E5%8D%95%E6%90%AD%E5%BB%BA%E6%9C%89%E7%BB%9F%E8%AE%A1%E5%8A%9F%E8%83%BD%E7%9A%84%E6%BC%82%E4%BA%AE%E7%9A%84%E7%9F%AD%E9%93%BE%E6%8E%A5%E6%9C%8D%E5%8A%A1">本文链接</a></p><p><strong>Sink</strong> 是一个轻量级的无服务器短链接生成器，提供强大的分析功能，完全托管在 Cloudflare 上。</p><h3 id="功能"><a class="markdownIt-Anchor" href="#功能"></a> ✨ 功能</h3><ul><li><strong>URL 缩短:</strong> 高效缩短 URL。</li><li><strong>分析:</strong> 收集和监控详细的链接统计信息。</li><li><strong>无服务器:</strong> 无需传统服务器基础设施运行。</li><li><strong>自定义短链:</strong> 个性化你的短链接。</li><li><strong>AI 短链:</strong> 使用 AI 生成独特的短链。</li><li><strong>链接过期:</strong> 设置链接的过期日期。</li></ul><h3 id="️-部署指南"><a class="markdownIt-Anchor" href="#️-部署指南"></a> 🏗️ 部署指南</h3><ol><li><p><strong>Fork 仓库:</strong></p><ul><li>Fork <a href="https://github.com/ccbikai/Sink/fork">Sink 仓库</a> 到你的 GitHub 账户。</li></ul></li><li><p><strong>创建 Cloudflare Pages 项目:</strong></p><ul><li>在 <a href="https://developers.cloudflare.com/pages/">Cloudflare Pages</a> 上创建一个新项目。</li></ul></li><li><p><strong>选择仓库和预设:</strong></p><ul><li>选择 <code>Sink</code> 仓库和 <code>Nuxt.js</code> 预设。</li></ul></li><li><p><strong>配置环境变量:</strong></p><ul><li><code>NUXT_SITE_TOKEN</code>: 必须超过 8 个字符。</li><li><code>NUXT_CF_ACCOUNT_ID</code>: <a href="https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/">查找你的账户 ID</a>。</li><li><code>NUXT_CF_API_TOKEN</code>: <a href="https://developers.cloudflare.com/fundamentals/api/get-started/create-token/">创建 Cloudflare API 令牌</a>。该令牌应至少具有 <code>Account.Account Analytics</code> 权限。</li></ul></li><li><p><strong>保存并部署:</strong></p></li><li><p><strong>配置函数:</strong></p><ul><li>取消部署，转到 <code>设置</code> -&gt; <code>函数</code>。</li><li>KV 命名空间绑定: 将变量名 <code>KV</code> 绑定到一个 KV 命名空间。</li><li>Workers AI 绑定（可选）: 将变量名 <code>AI</code> 绑定到 Workers AI 目录。</li><li>分析引擎绑定: 将变量名 <code>ANALYTICS</code> 绑定到 <code>sink</code> 数据集，并为你的账户启用 <a href="https://developers.cloudflare.com/analytics/analytics-engine/get-started/">Cloudflare 分析引擎 beta</a>。</li></ul></li><li><p><strong>重新点击部署:</strong></p></li></ol>]]></content>
    
    
    <summary type="html">有统计功能的短链接服务</summary>
    
    
    
    <category term="教程" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="cloudflare" scheme="https://blog.661212.xyz/tags/cloudflare/"/>
    
    <category term="短链接" scheme="https://blog.661212.xyz/tags/%E7%9F%AD%E9%93%BE%E6%8E%A5/"/>
    
    <category term="免费" scheme="https://blog.661212.xyz/tags/%E5%85%8D%E8%B4%B9/"/>
    
    <category term="好看" scheme="https://blog.661212.xyz/tags/%E5%A5%BD%E7%9C%8B/"/>
    
  </entry>
  
  <entry>
    <title>解决Windows远程桌面断开链接导致锁屏</title>
    <link href="https://blog.661212.xyz/articles/%E8%A7%A3%E5%86%B3Windows%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%96%AD%E5%BC%80%E9%93%BE%E6%8E%A5%E5%AF%BC%E8%87%B4%E9%94%81%E5%B1%8F"/>
    <id>https://blog.661212.xyz/articles/%E8%A7%A3%E5%86%B3Windows%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%96%AD%E5%BC%80%E9%93%BE%E6%8E%A5%E5%AF%BC%E8%87%B4%E9%94%81%E5%B1%8F</id>
    <published>2024-03-16T03:04:55.000Z</published>
    <updated>2024-03-16T03:04:55.000Z</updated>
    
    <content type="html"><![CDATA[<p>新建一个.bat文件，内容如下。在要退出远程桌面的时候，点击这个bat文件即可</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">for /f &quot;skip=1 tokens=3&quot; %%s in (&#x27;query user %USERNAME%&#x27;) do (%windir%\System32\tscon.exe %%s /dest:console)</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">模拟当前用户登录</summary>
    
    
    
    <category term="其他" scheme="https://blog.661212.xyz/categories/%E5%85%B6%E4%BB%96/"/>
    
    
    <category term="Windows" scheme="https://blog.661212.xyz/tags/Windows/"/>
    
    <category term="锁屏" scheme="https://blog.661212.xyz/tags/%E9%94%81%E5%B1%8F/"/>
    
    <category term="远程桌面" scheme="https://blog.661212.xyz/tags/%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2/"/>
    
    <category term="解决" scheme="https://blog.661212.xyz/tags/%E8%A7%A3%E5%86%B3/"/>
    
    <category term="断开连接" scheme="https://blog.661212.xyz/tags/%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5/"/>
    
  </entry>
  
  <entry>
    <title>Cloudflare Workers + KV 搭建一个带后台管理的blog</title>
    <link href="https://blog.661212.xyz/articles/Cloudflare%20Workers%20+%20KV%20%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%B8%A6%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%9A%84blog"/>
    <id>https://blog.661212.xyz/articles/Cloudflare%20Workers%20+%20KV%20%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%B8%A6%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%9A%84blog</id>
    <published>2023-08-29T03:04:55.000Z</published>
    <updated>2023-08-29T03:04:55.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="0展示"><a class="markdownIt-Anchor" href="#0展示"></a> 0.展示</h3><p><img src="https://imgs.661212.xyz/file/29fb0d433bde0e1cd7d28.png" alt="29fb0d433bde0e1cd7d28.png" /></p><blockquote><p>本文部分内容由chatgpt生成，略有修改</p></blockquote><p><em>相关链接：</em></p><p><em>Demo</em> :  <a href="https://cfblog.661212.xyz/">https://cfblog.661212.xyz/</a></p><p><em>Github</em>：<a href="https://github.com/wang-useful/cfblog-plus">https://github.com/wang-useful/cfblog-plus</a></p><p>(备注：本文介绍的是 <code>cfblog-plus</code> 原仓库为：<a href="https://github.com/Arronlong/cfblog-plus">https://github.com/Arronlong/cfblog-plus</a> ，是<a href="https://github.com/gdtool/cloudflare-workers-blog">gdtool/cloudflare-workers-blog</a> 的一个修改版)</p><h3 id="1介绍"><a class="markdownIt-Anchor" href="#1介绍"></a> 1.介绍</h3><p><code>cf blog</code>是一个运行在cloudflare workers 上的博客程序,使用 cloudflare KV作为数据库,无其他依赖. 兼容静态博客的速度,以及动态博客的灵活性，您可以通过访问项目仓库了解更多详情。</p><h3 id="2项目特点"><a class="markdownIt-Anchor" href="#2项目特点"></a> 2.项目特点：</h3><ul><li>使用workers提供的KV作为数据库，可达到wordpress的灵活性</li><li>使用cloudflare缓存html来降低KV的读写，使其可达到静态博客的速度</li><li>后台使用markdown语法，方便快捷，一键发布(页面重构+缓存清理)</li><li><code>cfblog-plus</code>新增了 <code>文章置顶、后台首页选择、文章隐藏、静态搜索 </code>等功能</li></ul><h3 id="3部署"><a class="markdownIt-Anchor" href="#3部署"></a> 3.部署</h3><blockquote><p>这是一个纯小白教程[doge]</p></blockquote><ul><li><h4 id="第一步注册cloudflare账号"><a class="markdownIt-Anchor" href="#第一步注册cloudflare账号"></a> 第一步：注册Cloudflare账号</h4><p>Cloudflare官网：<a href="https://dash.cloudflare.com">https://dash.cloudflare.com</a></p></li><li><h4 id="第二步将域名托管到cloudflare中并获取区域id"><a class="markdownIt-Anchor" href="#第二步将域名托管到cloudflare中并获取区域id"></a> 第二步，将域名托管到CloudFlare中，并获取<code>区域ID</code></h4><blockquote><p>如果没有也行，可以使用自动分配的域名，但是后续发布文章时，自动清除缓存会无法使用，问题不大</p></blockquote><p><em><strong>托管域名</strong></em>：过程略，自行baidu或google</p><p><em><strong>获取区域ID</strong></em>：如域名已托管到CloudFlare中，进入域名站点管理页面，页面向下滑动，记录右侧的“区域ID”的值，后续会用到。</p></li><li><h4 id="第三步获取清除缓存-api-令牌"><a class="markdownIt-Anchor" href="#第三步获取清除缓存-api-令牌"></a> 第三步，获取清除缓存 API 令牌</h4><p>打开<a href="https://dash.cloudflare.com/profile/api-tokens">API令牌</a>管理页面，点击“创建令牌”按钮，页面拉到最下面，点击“创建自定义令牌”后面的“开始使用”按钮，按以下方式填写。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">令牌名字：CFBlog-plus</span><br><span class="line">缓存权限：区域 -&gt; 缓存清除 -&gt; 清除</span><br><span class="line">区域资源：包括 -&gt; 特定区域 -&gt; 【您的域名】</span><br></pre></td></tr></table></figure><p><img src="https://imgs.661212.xyz/file/7e3b64a933ceca9af8708.png" alt="7e3b64a933ceca9af8708.png" /></p><p><img src="https://imgs.661212.xyz/file/908cede94ae45c22824ab.png" alt="908cede94ae45c22824ab.png" />    <img src="https://imgs.661212.xyz/file/257b5ccd3376a02793808.png" alt="257b5ccd3376a02793808.png" /></p><p><img src="https://imgs.661212.xyz/file/4dce9639285562ebb3908.png" alt="4dce9639285562ebb3908.png" /></p><p>token留下备用</p></li><li><h4 id="第四步新建kv命名空间"><a class="markdownIt-Anchor" href="#第四步新建kv命名空间"></a> 第四步，新建KV命名空间</h4><p>打开<a href="https://dash.cloudflare.com/">CloudFlare主页</a>，点击右侧的“Workers”，然后点击“KV”项，即可进入“Worker KV”管理页面。</p><p>在命名空间名称输入框里任意输入一个名称，为了见名知义，这里最好使用CFBLOG作为命名空间名称。点击添加即可。如下图所示：</p><p><img src="https://imgs.661212.xyz/file/4a64f2f858cf732e05670.png" alt="4a64f2f858cf732e05670.png" /></p></li><li><h4 id="第五步创建workers"><a class="markdownIt-Anchor" href="#第五步创建workers"></a> 第五步，创建Workers</h4><p>点击挨着“KV”的“概述”项，进入Workers 和 Pages 概述，点击“创建应用程序”，点击“创建Workers”，点击“编辑代码”</p><p><img src="https://imgs.661212.xyz/file/be750e530fb6362732ab3.png" alt="be750e530fb6362732ab3.png" /></p><p><img src="https://imgs.661212.xyz/file/6c4732d82c391e483b478.png" alt="6c4732d82c391e483b478.png" /></p><p>将<a href="https://github.com/wang-useful/cfblog-plus/blob/master/index_plus.js">index_plus.js</a>中的内容替换workers的内容。</p><p><img src="https://imgs.661212.xyz/file/b87eaa8fdcda9a30dae3f.png" alt="b87eaa8fdcda9a30dae3f.png" /></p><p>先不修改配置，然后点击“保存并部署”。然后点击“&lt;”箭头，返回该workers的配置页面，自行“重命名”，然后“设置”–&quot;变量&quot;选项卡，添加“KV 命名空间绑定”，变量名随意起，推荐用CFBLOG，下拉选择新添加的KV命名空间，点击“保存按钮”。</p><p><img src="https://imgs.661212.xyz/file/752437d0294a2f983f0ea.png" alt="752437d0294a2f983f0ea.png" /></p><p>再将页面滑动上面，点击“快速编辑”，重新打开workers的编辑页面开始添加各类配置。</p><p><img src="https://imgs.661212.xyz/file/f7039a598891d793ec193.png" alt="f7039a598891d793ec193.png" /></p><p>以上配置项均根据配置说明进行配置即可，不再详细说明。要记得“保存并部署”</p><p>可以点击右侧的“预览”选项卡进行预览，能成功出现页面就说明配置成功了。</p></li><li><h4 id="第六步配置域名访问非必须"><a class="markdownIt-Anchor" href="#第六步配置域名访问非必须"></a> 第六步，配置域名访问【非必须】</h4></li><li><p>参照图片</p><p><img src="https://imgs.661212.xyz/file/e3e542ce0e229b155cd98.png" alt="e3e542ce0e229b155cd98.png" /></p></li></ul><p>保存后可以看到列表里有刚添加的信息，自此，所有配置已经完成，可以愉快的写博客了。</p><h3 id="4可能遇到的问题"><a class="markdownIt-Anchor" href="#4可能遇到的问题"></a> 4.可能遇到的问题</h3><ul><li><h4 id="文章id为id000nan且访问会报错误"><a class="markdownIt-Anchor" href="#文章id为id000nan且访问会报错误"></a> 文章id为<code>ID000nan</code>且访问会报错误</h4><p>解决方案：在创建的KV中修改<code>SYSTEM_INDEX_NUM</code>的值为<code>0</code></p><p><img src="https://imgs.661212.xyz/file/b1a7e185f4b827c21494c.png" alt="b1a7e185f4b827c21494c.png" /></p></li><li><h4 id="新增文章时必填的分类无法选择"><a class="markdownIt-Anchor" href="#新增文章时必填的分类无法选择"></a> 新增文章时，必填的分类无法选择</h4><p>解决方案：在顶部<code>设置</code>中，参照提示填写分类</p></li><li><h4 id="保存了但是主页不显示文章"><a class="markdownIt-Anchor" href="#保存了但是主页不显示文章"></a> 保存了，但是主页不显示文章</h4><p>解决方案：在后台直接点发布或者去Cloudlfare清除相关链接的缓存(自行baidu/Google)</p></li></ul><h3 id="5扩展"><a class="markdownIt-Anchor" href="#5扩展"></a> 5.扩展</h3><p>添加评论、阅读量、内容分类、页脚、自定义页面和图标、链接等，请自行发掘</p><blockquote><h4 id="例子"><a class="markdownIt-Anchor" href="#例子"></a> 例子</h4><p>页脚（可以把作者信息保留，我这里因为有这篇文章介绍就不保留了）</p><p><img src="https://imgs.661212.xyz/file/f7050281ebf1fe70756ea.png" alt="f7050281ebf1fe70756ea.png" /></p><p>阅读量</p><p><img src="https://imgs.661212.xyz/file/fee7562282c610eb113c8.png" alt="fee7562282c610eb113c8.png" /></p><p>评论</p><p><img src="https://imgs.661212.xyz/file/c88fe549e84025ab459dd.png" alt="c88fe549e84025ab459dd.png" /></p><p>图标+分类</p><p><img src="https://imgs.661212.xyz/file/8029cf0cee3de73d25e54.png" alt="8029cf0cee3de73d25e54.png" /></p></blockquote><h3 id="6承载能力"><a class="markdownIt-Anchor" href="#6承载能力"></a> 6.承载能力：</h3><ul><li>KV基本不存在瓶颈,因为使用了缓存,读写很少</li><li>唯一瓶颈是 workers的日访问量10w,大约能承受2万IP /日</li><li>文章数:1G存储空间,几万篇问题不大</li></ul><h3 id="7说明"><a class="markdownIt-Anchor" href="#7说明"></a> 7.说明</h3><p>感谢原作者的付出，觉得好用不妨给原作者一个 星星</p><p>本文链接：<br /><a href="https://blog.661212.xyz/index.php/archives/6/">https://blog.661212.xyz/index.php/archives/6/</a><br /><a href="https://cfblog.661212.xyz/article/000003/cfblog-plus.html">https://cfblog.661212.xyz/article/000003/cfblog-plus.html</a></p><p>最后，感谢你的阅读，谢谢</p>]]></content>
    
    
    <summary type="html">无需服务器简单搭建一个动态博客</summary>
    
    
    
    <category term="教程" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="blog" scheme="https://blog.661212.xyz/tags/blog/"/>
    
    <category term="cfblog" scheme="https://blog.661212.xyz/tags/cfblog/"/>
    
    <category term="cloudflare" scheme="https://blog.661212.xyz/tags/cloudflare/"/>
    
    <category term="worker" scheme="https://blog.661212.xyz/tags/worker/"/>
    
    <category term="kv" scheme="https://blog.661212.xyz/tags/kv/"/>
    
  </entry>
  
  <entry>
    <title>[转载]Debian / Ubuntu 手工添加 Swap 分区</title>
    <link href="https://blog.661212.xyz/articles/[%E8%BD%AC%E8%BD%BD]Debian%20&amp;%20Ubuntu%20%E6%89%8B%E5%B7%A5%E6%B7%BB%E5%8A%A0%20Swap%20%E5%88%86%E5%8C%BA"/>
    <id>https://blog.661212.xyz/articles/[%E8%BD%AC%E8%BD%BD]Debian%20&amp;%20Ubuntu%20%E6%89%8B%E5%B7%A5%E6%B7%BB%E5%8A%A0%20Swap%20%E5%88%86%E5%8C%BA</id>
    <published>2023-08-28T03:04:55.000Z</published>
    <updated>2023-08-28T03:04:55.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>转载自：<a href="https://u.sb/debian-swap/">https://u.sb/debian-swap/</a></p></blockquote><p>本文将指导如何在 Debian 11 和 Ubuntu 22.04 下手工添加 Swap 分区。</p><h3 id="准备工作"><a class="markdownIt-Anchor" href="#准备工作"></a> 准备工作</h3><p>首先，检查你的系统是否已经有 Swap 分区：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">swapon -s</span><br></pre></td></tr></table></figure><p>或</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">free -m</span><br></pre></td></tr></table></figure><p>如果没有返回结果或者 <code>free -m</code> 中 <code>Swap</code> 一列数值是 <code>0</code>，则表示你的系统没有 Swap 分区。</p><h3 id="创建-swap-分区"><a class="markdownIt-Anchor" href="#创建-swap-分区"></a> 创建 SWAP 分区</h3><p>我们可以使用 <code>fallocate</code> 命令创建一个 1GB 大小的 Swap 分区：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">fallocate -l 1G /swapfile</span><br></pre></td></tr></table></figure><p>如果这个命令无法使用，请安装 <code>util-linux</code> 包：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">apt install util-linux</span><br></pre></td></tr></table></figure><p>然后设置这个文件的权限：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">chmod 600 /swapfile`</span><br></pre></td></tr></table></figure><p>然后激活 SWAP 分区</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mkswap /swapfile</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">swapon /swapfile</span><br></pre></td></tr></table></figure><p>此时，你可以使用 <code>swapon -s</code> 或 <code>free -m</code> 命令查看 Swap 分区是否已经激活。</p><h3 id="设置开机自启"><a class="markdownIt-Anchor" href="#设置开机自启"></a> 设置开机自启</h3><p>我们需要编辑 <code>/etc/fstab</code> 这个文件，加入下面的内容即可：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">echo &quot;/swapfile swap swap defaults 0 0&quot; &gt;&gt; /etc/fstab</span><br></pre></td></tr></table></figure><p>大功告成，使用 <code>free -m</code> 命令查看 Swap 分区是否正确</p><h3 id="调整系统内核-swappiness-值"><a class="markdownIt-Anchor" href="#调整系统内核-swappiness-值"></a> 调整系统内核 Swappiness 值</h3><p>Swapiness 是 Linux 内核的一个属性，定义了系统使用交换空间的频率，Swapiness 的值在 0 到 100 之间（默认是 60），一个低的值会使内核尽可能地避免交换，而一个高的值会使内核更积极地使用交换空间。</p><p>这个值默认是 <code>60</code>，我们可以使用 <code>cat /proc/sys/vm/swappiness</code> 命令查看当前值。</p><p>一般我们可以给他改成 <code>10</code>：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">echo &quot;vm.swappiness=10&quot; &gt;&gt; /etc/sysctl.conf</span><br></pre></td></tr></table></figure><p>然后使用 <code>sysctl -p</code> 命令使其生效。</p><h3 id="关闭-swap"><a class="markdownIt-Anchor" href="#关闭-swap"></a> 关闭 Swap</h3><p>有时候我们需要关闭 Swap 分区，可以使用下面的命令：</p><p>首先，停用 Swap 分区：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">swapoff -v /swapfile</span><br></pre></td></tr></table></figure><p>然后检查 <code>/etc/fstab</code>，删除 <code>/swapfile swap swap defaults 0 0</code> 这一行。</p><p>最后删除 <code>/swapfile</code> 这个文件：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">rm /swapfile</span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">Linux添加swap</summary>
    
    
    
    <category term="转载" scheme="https://blog.661212.xyz/categories/%E8%BD%AC%E8%BD%BD/"/>
    
    
    <category term="Debian" scheme="https://blog.661212.xyz/tags/Debian/"/>
    
    <category term="Ubuntu" scheme="https://blog.661212.xyz/tags/Ubuntu/"/>
    
    <category term="Swap" scheme="https://blog.661212.xyz/tags/Swap/"/>
    
  </entry>
  
  <entry>
    <title>用 Cloudflare Workers 搭建了一个高度自定义的在线记事本</title>
    <link href="https://blog.661212.xyz/articles/%E7%94%A8%20Cloudflare%20Workers%20%E6%90%AD%E5%BB%BA%E4%BA%86%E4%B8%80%E4%B8%AA%E9%AB%98%E5%BA%A6%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E5%9C%A8%E7%BA%BF%E8%AE%B0%E4%BA%8B%E6%9C%AC"/>
    <id>https://blog.661212.xyz/articles/%E7%94%A8%20Cloudflare%20Workers%20%E6%90%AD%E5%BB%BA%E4%BA%86%E4%B8%80%E4%B8%AA%E9%AB%98%E5%BA%A6%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E5%9C%A8%E7%BA%BF%E8%AE%B0%E4%BA%8B%E6%9C%AC</id>
    <published>2023-08-12T20:21:21.175Z</published>
    <updated>2023-08-19T20:27:01.116Z</updated>
    
    <content type="html"><![CDATA[<p>自己写了一个高度自定义的在线记事本<br /><img src="https://imgs.661212.xyz/file/5219fdf5aa92d284a111d.png" alt="5219fdf5aa92d284a111d.png" /><br />特点：<br />1.可以自定义每个笔记页面，甚至可以自己写html（自由性高）<br />2.自定义每个笔记页面的content type<br />3.可以自定义笔记的路径<br />4.可以编辑自己的笔记<br />5.笔记过期时间（由于某些原因，笔记默认2.5小时后过期，如有需要可在讨论申请并留下邮箱，即可获得白名单 | 示例：<a href="https://note.661212.xyz/note/white%EF%BC%89">https://note.661212.xyz/note/white）</a><br />5.更多玩法等待你提出/发掘</p><p>todo：<br />1.笔记访问密码（基本实现，内测中/白名单）<br />2.更完善的后台管理<br />3.端对端加密（既新建笔记时在浏览器加密，查看笔记时在浏览器中解密，服务端只存储加密后的数据）</p><p>欢迎来使用</p><p>帮忙找找bug和提出改进建议</p><p><a href="https://note.661212.xyz/">https://note.661212.xyz/</a></p><p>更新：</p><p>有人在刷，给api加了频限（） <img src="https://www.nodeseek.com/static/image/sticker/xhj/031.png" alt="xhj031" /></p><p>被打了 <img src="https://www.nodeseek.com/static/image/sticker/xhj/032.png" alt="xhj032" /></p>]]></content>
    
    
    <summary type="html">手搓记事本</summary>
    
    
    
    <category term="手搓" scheme="https://blog.661212.xyz/categories/%E6%89%8B%E6%90%93/"/>
    
    
    <category term="cloudflare" scheme="https://blog.661212.xyz/tags/cloudflare/"/>
    
    <category term="记事本" scheme="https://blog.661212.xyz/tags/%E8%AE%B0%E4%BA%8B%E6%9C%AC/"/>
    
    <category term="手搓" scheme="https://blog.661212.xyz/tags/%E6%89%8B%E6%90%93/"/>
    
  </entry>
  
  <entry>
    <title>Cloudflare Workers + Vercel 搭建短链接系统</title>
    <link href="https://blog.661212.xyz/articles/Cloudflare%20Workers%20+%20Vercel%20%E6%90%AD%E5%BB%BA%E7%9F%AD%E9%93%BE%E6%8E%A5%E7%B3%BB%E7%BB%9F"/>
    <id>https://blog.661212.xyz/articles/Cloudflare%20Workers%20+%20Vercel%20%E6%90%AD%E5%BB%BA%E7%9F%AD%E9%93%BE%E6%8E%A5%E7%B3%BB%E7%BB%9F</id>
    <published>2023-08-11T03:04:55.000Z</published>
    <updated>2023-08-11T03:04:55.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="0展示"><a class="markdownIt-Anchor" href="#0展示"></a> 0.展示</h3><p><img src="https://imgs.661212.xyz/file/cc446fce5f8cd0ac7b112.png" alt="1" /></p><blockquote><p>本文初稿由chatgpt生成，略有修改</p></blockquote><p><em>相关链接：</em></p><ul><li><em>Github：</em> <a href="https://github.com/sunnywangzi/short-url">https://github.com/sunnywangzi/short-url</a> (备注：原仓库为<a href="https://github.com/Likenttt/eastlake-cloudflare-worker-short-url">https://github.com/Likenttt/eastlake-cloudflare-worker-short-url</a> 本仓库只是对后台管理汉化了而已)</li></ul><h3 id="1介绍"><a class="markdownIt-Anchor" href="#1介绍"></a> 1.介绍</h3><p>东湖短网址系统是一个基于 Cloudflare Workers 和 Vercel 的开源项目，旨在创建和管理短网址，您可以通过访问项目仓库了解更多详情。</p><p>项目特点：</p><ul><li>前端管理页面：使用 Next.js 部署在 Vercel 上，支持登录、创建短网址、显示短网址列表以及查看点击历史。</li><li>后端服务器：使用 Cloudflare Worker 实现，能够将短网址重定向到原始长网址，支持过期时间、密码保护和404回退页面。</li><li>使用 Cloudflare KV 存储点击历史：需要注意免费套餐对写入次数有限制，付费套餐用户可以考虑使用点击历史功能。</li></ul><h3 id="2部署"><a class="markdownIt-Anchor" href="#2部署"></a> 2.部署：</h3><blockquote><p>也可以使用类似 gitpod 等在线平台部署，后面再补充方法</p></blockquote><ul><li><strong>前端</strong>(部署在 Vercel 上的 Next.js 项目，源代码位于 /fe)<table><thead><tr><th style="text-align:left">步骤</th></tr></thead><tbody><tr><td style="text-align:left">1.Fork 仓库并在 vercel 上部署</td></tr><tr><td style="text-align:left">2.部署时选择 Next.js ，跟目录填写 <code>/fe</code>，填写环境变量 <code>CLOUDFLARE_WORKER_BASE_URL</code>(值为<code>https://xxx.com</code>，注意填写的是后端的地址 即短链接域名)</td></tr></tbody></table></li><li><strong>后端</strong>(Cloudflare Worker，源代码位于根目录)<table><thead><tr><th style="text-align:left">步骤</th></tr></thead><tbody><tr><td style="text-align:left">1.将代码 clone 到本地</td></tr><tr><td style="text-align:left">2.本地安装 Wrangler 命令行并登录 Cloudflare(安装：<code>npm install -g wrangler </code> 登录：<code>wrangler login</code>)</td></tr><tr><td style="text-align:left">3.创建一个Cloudflare KV 命名空间，将KV 命名空间 ID填写在 <code>wrangler.toml</code> 里 <code>[[kv_namespaces]]</code> <code>id</code> 中</td></tr><tr><td style="text-align:left">4.在<code>wrangler.toml</code>中修改环境变量 (用户名：<code>USERNAME</code>，密码：<code>PASSWORD</code>，JWT 密钥：<code>JWT_SECRET</code>，默认页面链接：<code>DEFAULT_PAGE</code>，管理页面链接：<code>FE_ADMIN_DOMAIN</code>，是否记录点击数：<code>RECORD_CLICKS</code>)</td></tr><tr><td style="text-align:left">4.部署 <code>wrangler publish</code></td></tr><tr><td style="text-align:left">5.在Cloudflare中绑定你的域名（即前端部署时填写的环境变量的值）</td></tr></tbody></table></li></ul><h3 id="3注意事项"><a class="markdownIt-Anchor" href="#3注意事项"></a> 3.注意事项：</h3><ul><li>为了安全，请使用强密码和 JWT 密钥。</li><li>免费套餐限制：Cloudflare 免费套餐对 KV 的写入次数有限制，建议不要在免费套餐下启用点击历史记录功能。</li><li>Vercel 限制：Vercel 对免费用户有限制，但一般情况下不太容易耗尽。</li></ul><p>此外，您可以在项目的 README 中找到更详细的部署和使用指南。</p><h3 id="4说明"><a class="markdownIt-Anchor" href="#4说明"></a> 4.说明</h3><p>感谢原作者的付出，我只是在原作者的基础上把后台管理翻译成中文而已。</p><p>最后，感谢你的阅读，谢谢 :xhj028:</p>]]></content>
    
    
    <summary type="html">无需服务器搭建一个短链接服务</summary>
    
    
    
    <category term="教程" scheme="https://blog.661212.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="Cloudflare Workers" scheme="https://blog.661212.xyz/tags/Cloudflare-Workers/"/>
    
    <category term="Vercel" scheme="https://blog.661212.xyz/tags/Vercel/"/>
    
    <category term="短链接" scheme="https://blog.661212.xyz/tags/%E7%9F%AD%E9%93%BE%E6%8E%A5/"/>
    
    <category term="免费" scheme="https://blog.661212.xyz/tags/%E5%85%8D%E8%B4%B9/"/>
    
    <category term="好看" scheme="https://blog.661212.xyz/tags/%E5%A5%BD%E7%9C%8B/"/>
    
    <category term="简洁" scheme="https://blog.661212.xyz/tags/%E7%AE%80%E6%B4%81/"/>
    
  </entry>
  
  <entry>
    <title>Hello world</title>
    <link href="https://blog.661212.xyz/articles/welcome"/>
    <id>https://blog.661212.xyz/articles/welcome</id>
    <published>1998-12-31T16:00:00.000Z</published>
    <updated>1998-12-31T16:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="hello-world"><a class="markdownIt-Anchor" href="#hello-world"></a> Hello world</h1><h2 id="你好世界"><a class="markdownIt-Anchor" href="#你好世界"></a> 你好世界</h2>]]></content>
    
    
    <summary type="html">换主题后的第一篇文章</summary>
    
    
    
    
  </entry>
  
</feed>
