编程导航图床话题讨论

图床

13 参与
分享

快来分享你的内容吧~

点击登录,快来和大家讨论吧~
表情
图片
话题
打卡
综合
交流
文章
问答

程序员必备工具【图床】

## <font style="color:rgb(15, 17, 21);">一、 什么是图床?</font> **<font style="color:rgb(15, 17, 21);"> 图床</font>**<font style="color:rgb(15, 17, 21);">,英文通常称为 </font>**<font style="color:rgb(15, 17, 21);">Image Hosting Service</font>**<font style="color:rgb(15, 17, 21);">,顾名思义,就是专门用来存放图片的服务器。您可以把它理解为一个在线的“图片仓库”或“图片托管中心”。</font> + **<font style="color:rgb(15, 17, 21);">核心功能</font>**<font style="color:rgb(15, 17, 21);">:用户将图片上传到图床服务器后,图床会提供一个唯一的互联网访问地址(通常是URL链接)。用户可以在任何支持外链的地方(如个人博客、论坛、网站、社交媒体、邮件、Markdown文档等)使用这个链接来展示图片,而无需将图片文件直接存储在本地或自己的网站服务器上。</font> ![](https://pic.code-nav.cn/post_picture/1643218270658023426/nbbzBl2wPSD8J2QD.jpg)(以上内容由Ai智能生成,除表情包) ## <font style="color:rgb(15, 17, 21);">二、 为什么需要使用图床?(主要优点)</font> 1. **<font style="color:rgb(15, 17, 21);">减轻自身服务器负担</font>**<font style="color:rgb(15, 17, 21);">:图片,尤其是高清大图,会占用大量的存储空间和带宽流量。使用图床可以将这部分资源消耗转移出去,降低自身服务器的成本和压力,让服务器更专注于处理核心业务逻辑。</font> 2. **<font style="color:rgb(15, 17, 21);">提升访问速度</font>**<font style="color:rgb(15, 17, 21);">:很多专业的图床服务在全球拥有多个CDN(内容分发网络)节点。您上传的图片会被自动分发到离用户最近的节点,从而大幅加快图片加载速度,改善用户体验。</font> 3. **<font style="color:rgb(15, 17, 21);">简化内容管理</font>**<font style="color:rgb(15, 17, 21);">:对于需要在多个平台发布内容的人来说(如博主、自媒体运营者),只需在一个地方(图床)管理所有图片,无需在不同平台反复上传。</font> 4. **<font style="color:rgb(15, 17, 21);">专为外链设计</font>**<font style="color:rgb(15, 17, 21);">:图床服务的核心就是提供稳定、高速的外链,避免了从自己网站外链图片时可能遇到的防盗链策略问题。</font> 5. **<font style="color:rgb(15, 17, 21);">方便分享</font>**<font style="color:rgb(15, 17, 21);">:只需分享一个图片链接,别人就可以直接查看或下载,非常便捷。</font> 6. **<font style="color:rgb(15, 17, 21);">以上优点为Ai生成,若有描述不准确的地方与本人无任何关系,下述内容为本人原创</font>****<font style="color:rgb(15, 17, 21);"></font>****<font style="color:rgb(15, 17, 21);">。</font>** ![](https://pic.code-nav.cn/post_picture/1643218270658023426/xVa2IH8YtKB5gXPB.jpg) 7. 提升B格:作为一名00后牛马程序员,在日常的工作以及学习的过程中势必存在许多需要查看图片的场景。使用图床无形中提升了自身的格调,主打一个人上人。 ## <font style="color:rgb(15, 17, 21);">三、 图床的主要类型</font> <font style="color:rgb(15, 17, 21);">图床可以根据其性质和运营方式分为以下几类:</font> | <font style="color:rgb(15, 17, 21);">类型</font> | <font style="color:rgb(15, 17, 21);">描述</font> | <font style="color:rgb(15, 17, 21);">优点</font> | <font style="color:rgb(15, 17, 21);">缺点</font> | <font style="color:rgb(15, 17, 21);">亲测过的服务</font> | | --- | --- | --- | --- | --- | | **<font style="color:rgb(15, 17, 21);">公共/免费图床</font>** | <font style="color:rgb(15, 17, 21);">向所有用户免费开放,通常通过广告或增值服务盈利。</font> | <font style="color:rgb(15, 17, 21);">免费、无需注册或注册简单、使用方便。</font> | **<font style="color:rgb(15, 17, 21);">不稳定</font>**<font style="color:rgb(15, 17, 21);">(可能关闭或丢失图片)、</font>**<font style="color:rgb(15, 17, 21);">有各种限制</font>**<font style="color:rgb(15, 17, 21);">(流量、大小、尺寸)、可能带广告、隐私性差。</font> | [路过图床](https://imgse.com/) | | **<font style="color:rgb(15, 17, 21);">收费/专业图床</font>** | <font style="color:rgb(15, 17, 21);">提供付费套餐,提供更专业和可靠的服务。</font> | **<font style="color:rgb(15, 17, 21);">非常稳定</font>**<font style="color:rgb(15, 17, 21);">、速度快(全球CDN)、</font>**<font style="color:rgb(15, 17, 21);">数据安全有保障</font>**<font style="color:rgb(15, 17, 21);">、提供详细的数据统计和管理功能、技术支持好。</font> | <font style="color:rgb(15, 17, 21);">需要付费。</font> | [**七牛云**](https://portal.qiniu.com/kodo/bucket)<font style="color:rgb(15, 17, 21);">、</font>[**腾讯云COS**](https://console.cloud.tencent.com/cos) | | **<font style="color:rgb(15, 17, 21);">自建图床</font>** | <font style="color:rgb(15, 17, 21);">用户自己购买服务器,使用开源程序搭建专属图床。</font> | **<font style="color:rgb(15, 17, 21);">完全自主控制</font>**<font style="color:rgb(15, 17, 21);">、无任何限制、数据绝对私有、可高度自定义</font> | | | ## <font style="color:rgb(15, 17, 21);">四、 如何选择一个合适的图床?</font> <font style="color:rgb(15, 17, 21);">选择图床时,请务必考虑以下关键因素:</font> 1. **<font style="color:rgb(15, 17, 21);">稳定性与可靠性</font>**<font style="color:rgb(15, 17, 21);">:这是</font>**<font style="color:rgb(15, 17, 21);">最重要的因素</font>**<font style="color:rgb(15, 17, 21);">。选择一个有良好口碑、运营时间长的服务商,避免图片突然无法访问。</font> 2. **<font style="color:rgb(15, 17, 21);">外链政策</font>**<font style="color:rgb(15, 17, 21);">:是否支持永久外链?是否有防盗链设置?(有些服务商会限制非本站的图片引用)</font> 3. **<font style="color:rgb(15, 17, 21);">速度与CDN</font>**<font style="color:rgb(15, 17, 21);">:是否提供全球CDN加速?这直接影响您网站读者的图片加载体验。</font> 4. **<font style="color:rgb(15, 17, 21);">存储与流量限制</font>**<font style="color:rgb(15, 17, 21);">:免费套餐通常有单张图片大小、总存储空间和每月流量限制。务必看清条款,避免超额。</font> 5. **<font style="color:rgb(15, 17, 21);">数据安全与隐私</font>**<font style="color:rgb(15, 17, 21);">:您的图片是否会被审查或被第三方使用?收费服务通常在这方面更有保障。</font> 6. **<font style="color:rgb(15, 17, 21);">管理功能</font>**<font style="color:rgb(15, 17, 21);">:是否提供方便的批量管理、删除、替换、相册分类等功能?</font> 7. **<font style="color:rgb(15, 17, 21);">成本</font>**<font style="color:rgb(15, 17, 21);">:评估您的需求和预算。如果只是偶尔使用,免费图床可能足够;如果是商业或高频使用,投资一个收费图床是更明智的选择。</font> ## <font style="color:rgb(15, 17, 21);">五、 重要注意事项与风险</font> 1. **<font style="color:rgb(15, 17, 21);">免费图床的风险</font>**<font style="color:rgb(15, 17, 21);">:</font>**<font style="color:rgb(15, 17, 21);">切勿</font>**<font style="color:rgb(15, 17, 21);">将非常重要或唯一的图片存放在免费的、不知名的图床上。服务可能随时关闭,导致所有图片链接失效(俗称“图裂”),造成无法挽回的损失。</font> 2. **<font style="color:rgb(15, 17, 21);">版权与内容</font>**<font style="color:rgb(15, 17, 21);">:确保您上传的图片不侵犯他人版权,并遵守图床服务商的内容政策(禁止色情、暴力等违法内容),否则图片可能会被删除,账户可能被封禁。</font> 3. **<font style="color:rgb(15, 17, 21);">URL链接变化</font>**<font style="color:rgb(15, 17, 21);">:有些图床在上传后会提供多个格式的链接(如HTML、BBCode、Markdown等),请注意区分。如果您后期在图床管理中删除了图片,对应的链接也会失效。</font> 4. **<font style="color:rgb(15, 17, 21);">备份!备份!备份!</font>**<font style="color:rgb(15, 17, 21);">:无论使用多么可靠的图床,都请务必在本地保留一份原始图片的备份。</font> ## <font style="color:rgb(15, 17, 21);">六、本人使用图床的心路历程</font> ### 一、初次接触 作为一个热爱深夜学习的一名大学生,每次在深夜寻找各种老师录制的各类学习视频时,因为本人比较喜欢做一些笔记标记什么的,在此过程中会产出一些图片。事后在寻找并二次记录归档的时候有一点比较头疼,那就是图片管理不方便。而且有许多图片都是截图,通过查看文件属性只能知道该图片是什么时间生成的。而这张图片对应的是哪位老师以及对应的教学视频不太好一一对应,之后我就想出了一个好办法。 ![](https://pic.code-nav.cn/post_picture/1643218270658023426/C92iftLo1y8T4blH.gif) 1. 新建一个docx文档,文档命名规则:技术栈_老师名称_课程视频对应标识符_版本。 2. 在该文档中,将所有涉及到的图片都按照时间顺序放入。 经过这样处理,电脑中的图片没有那么乱了,但是也衍生了另外一个问题。有次不小心损坏了其中的一个文件,结果关于那次学习记录的一些珍贵图片形式的笔记记录内容缺失。 当然以上的都算是小问题,其实都是可以通过规范过程操作规避的。其实第一次接触图床的主要原因还是电脑中的**各类图片放置乱而杂而且还没有备份**。而且也非常不利于我书写个人总结的Markdown笔记,因为图片引用的地址都是电脑本地地址,有时候为了整理图片会改变其位置,就得修改地址,会非常不方便。之后我就去了解相关的解决方案,顺其自然我就了解到图床这一产品。 ### 二、寻找适合自己的那个它 理想中的那个她😍: 1. 肤白 2. 貌美 3. 大。。。搞错了,不好意思哈![](https://pic.code-nav.cn/post_picture/1643218270658023426/JEz99dNpabMyZvKc.jpg) 基础需求: 1. 可以存储大量的图片资源(预估至少10GB级别) 2. 可以通过互联网快速的进行访问 3. 可以对图片资源进行可视化管理 通过梳理需求我当时发现了几种解决方案: 1. 使用免费图床(拒绝黄赌毒,从大家做起); 1. 对于免费图床,我目前只使用过[路过图床](https://imgse.com/),对于其他的免费图床提供商无法做出评价,就目前使用下来最大的好处就是免费,别的方面中规中矩,适合轻度患者。 2. 使用NAS文件存储(种类多这里描述不完); 1. 这里的门道挺多的,日后再慢慢细嗦。 3. 使用Nginx或者MinIo等相关技术栈实现(亲测实现过,大家可自行从网上寻找资料); 4. 使用Gitee实现(亲测实现过,大家可自行从网上寻找资料)。 1. 新建项目; 2. 图片上传; 3. 图片预览。 5. 个人搭建,我这里推荐一篇文章[用 PicGo+Typora+腾讯云COS 搭建图床服务](https://cloud.tencent.com/document/product/436/74373#.E5.9C.BA.E6.99.AF1.EF.BC.9A.E6.96.B0.E5.A2.9E.E5.9B.BE.E7.89.87.E4.BD.BF.E7.94.A8-cos-.E6.90.AD.E5.BB.BA.E5.9B.BE.E5.BA.8A.E6.9C.8D.E5.8A.A1) ## 七、总结 还是得搭建个人图床才是上上签,若是想通过搭建个人图床学习一些编程相关的知识,我这里推荐一个项目。 <font style="color:rgb(31, 35, 40);">⭐</font><font style="color:rgb(31, 35, 40);">️ 1 分钟了解项目,请看项目介绍和上线教程视频:</font>[<font style="color:rgb(9, 105, 218);">https://www.bilibili.com/video/BV1akwGeSERK</font>](https://www.bilibili.com/video/BV1akwGeSERK) <font style="color:rgb(31, 35, 40);">基于 Vue 3 + Spring Boot + COS + WebSocket 的 </font>[**企业级智能协同云图库平台**](https://www.codefather.cn/vip?shareCode=ujlwf3)<font style="color:rgb(31, 35, 40);">。</font> <font style="color:rgb(31, 35, 40);"></font> <font style="color:rgb(31, 35, 40);">声明:我不是托,我真的不是托,有时候我甚至都和别人拼团开通的知识星球的会员(审核大大开玩笑的,别当真)</font>

使用轻量应用服务器搭建图床(整合Typora、PicGo版)

# 使用轻量应用服务器搭建图床(整合Typora、PicGo版) Hi,我是洛言。前几天发布了一篇 “使用轻量应用服务器搭建图床”,链接地址:https://www.codefather.cn/post/1861735277154463745 但是我在使用的时候感觉十分不便:1、这种方式无法通过PicGo上传;2、每次上传图片都需要提交,太麻烦了! 因此就有了这篇文章! # 一、在Nginx配置静态资源映射 我们需要通过Nginx设置一个网站,用来展示我们的图片,因为我们刚刚已经通过宝塔安装Nginx,所以在这再设置一个网站: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/WC4hXRIZ8sD1u1bZ.webp" alt="image-20241126214438554" width="100%" /> 我们这里设置的图床网站地址为:`/www/wwwroot/elitecode`:默认创建的文件没有用可以删掉 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/ZrHPbPcF9lUdl24g.webp" alt="image-20241126214516889" width="100%" /> --- # 二、提供API接口 编写API接口 ~~~java package cn.luoyan.elitecode.controller; import cn.hutool.core.date.DateUtil; import cn.luoyan.elitecode.common.AjaxResult; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.UUID; /** * 文件接口 */ @RestController @RequestMapping("/file") public class ImageUploadController { @Value("${file.upload.path}") private String uploadPath; @Value("${file.upload.subdirectory}") private String uploadSubdirectory; @Value("${file.access.url}") private String accessURL; @Value("${file.access.subdirectory}") private String accessSubdirectory; //上传图片 @PostMapping("/upload") public AjaxResult<String> uploadImg(MultipartFile uploadFile) { // 按月份存储,获取存储目录 String dir = DateUtil.format(new Date(), "yyyy-MM"); File targetLocation = new File(new File(uploadPath, uploadSubdirectory), dir); if (!targetLocation.exists()) { targetLocation.mkdirs(); } // 获取上传图片名称 String originalFilename = uploadFile.getOriginalFilename(); // 获取文件扩展名 String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); // 拼接的图片路径,使用UUID命名避免文件发生覆盖 String newFileName = UUID.randomUUID().toString() + extName; File filePath = new File(targetLocation, newFileName); //上传图片 try { uploadFile.transferTo(filePath); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //返回图片访问url return AjaxResult.success(accessURL + "/" + accessSubdirectory + "/" + dir + "/" + newFileName); } } ~~~ application.yml ~~~yml # 文件相关配置 file: upload: # 文件上传的根路径 path: /www/wwwroot/elitecode # 文件存储的子目录 subdirectory: cos access: # 文件访问的基础URL url: https://pic.luo-yan.cn # 文件访问URL的子路径 subdirectory: cos ~~~ --- # 三、配置反向代理 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/Wz37BGfRVIoi7UPg.webp" alt="image-20241210133717309" width="100%" /> --- # 四、测试 这里使用postman测试 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/UtFWvCNlvN2qMadn.webp" alt="image-20241210133436652" width="100%" /> 点开返回的图像地址,可以发现图片上传成功 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/QyR38H04Fn2w2wuM.webp" alt="image-20241210133512868" width="100%" /> --- # 五、整合PicGo 插件官网:https://github.com/yuki-xin/picgo-plugin-web-uploader 下载好release后导入PicGo即可 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/4GGW7BVaNPNElTS0.webp" alt="image-20241210133824871" width="100%" /> 新建自定义Web图床 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/po3TvbhD1w5ajEff.png" alt="image-20241210133904447" width="100%" /> 图床配置 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/OBDlRB5Zqd3nm4IG.webp" alt="image-20241210134023653" width="100%" /> --- # 六、整合Typora 在Typora的偏好设置中进行如图设置即可 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/eEtyxN4Dy2bCmoD6.webp" alt="image-20241210134224246" width="100%" /> 随便复制一张图片到md文件,可以看见上传成功,并在md文件中成功显示图片 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/dtIaszIbHeCR7KSW.webp" alt="image-20241210134316157" width="100%" /> --- # 七、踩坑 最开始我的API返回的URL并没有封装成对象,而是直接返回一个字符串 ~~~java //上传图片 @PostMapping("/upload") public String uploadImg(MultipartFile uploadFile) { .... //返回图片访问url return accessURL + "/" + accessSubdirectory + "/" + dir + "/" + newFileName; } ~~~ 当我在md文件中进行测试时,它所显示的格式如下图,多了一个双引号,导致图片无法正确显示 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/ZEDcZnn6cL9U7z8e.png" alt="image-20241210134530491" width="100%" /> 解决办法:将返回的URL封装成JSON对象,此时Typora即可正确解析格式

使用轻量应用服务器搭建图床

我的CSDN博客地址:https://blog.csdn.net/qq_39921135?type=blog 欢迎多多关注 # 一、在宝塔上安装Nginx 首先安装宝塔:https://www.bt.cn/new/download.html <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/kKlj0knGNrIBJsYj.webp" alt="image-20241126213908167" width="100%" /> 然后在宝塔中安装Nginx <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/HDDYcctbrSSushyP.webp" alt="image-20241126214014299" width="100%" /> --- # 二、创建图床网站 我们需要通过Nginx设置一个网站,用来展示我们的图片,因为我们刚刚已经通过宝塔安装Nginx,所以在这再设置一个网站: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/hjwEOCEpxMSnyQpl.webp" alt="image-20241126214438554" width="100%" /> 我们这里设置的图床网站地址为:`/www/wwwroot/elitecode`:默认创建的文件没有用可以删掉 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/4CIxPOJmiRsdQXQ3.webp" alt="image-20241126214516889" width="100%" /> --- # 三、服务器创建Git用户 首先,我们看看我们事先有没有创建Git用户,输入命令: ~~~bash cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more ~~~ <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/iuYLJIJ7ukKuzxPY.png" alt="image-20241126214811300" width="100%" /> 创建`git`用户: ~~~bash adduser git ~~~ 修改git的密码: ~~~bash passwd git ~~~ 然后两次输入git的密码确认后查看git是否添加成功 ~~~bash cd /home && ls -al ~~~ <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/QNygFsTrOlYWRKc8.png" alt="image-20241126215216337" width="100%" /> --- # 四、服务器创建图床仓库 切换为git用户 ~~~bash su - git ~~~ 初始化叫 `elitecode.git` 的仓库 ~~~bash sudo git init --bare elitecode.git ~~~ 看见 `Initialized empty Git repository in /home/git/elitecode.git/` 说明仓库创建成功 此时会多一个项目文件夹: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/iof0uDA8w2w1Qnd1.png" alt="image-20241126215638015" width="339px" /> 输入以下命令,为git用户赋予权限 ~~~bash chown -R git:git elitecode.git ~~~ 进入项目文件夹查看初始化的内容: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/e3WxlQZyQPT60taQ.png" alt="image-20241126215722677" width="100%" /> 这个时候,我们`图床仓库`就创建好了。 --- # 五、设置hooks 我们设置一下hooks,用于每次本地仓库推送到云端时,自动用最新版本图床图片覆盖至Nginx网站下。我们刚刚Nginx创建的图床网站地址:`/www/wwwroot/elitecode`,所以: ~~~bash # (当前在项目文件夹内)进入hooks文件夹内 cd hooks # 创建并编辑钩子 vim post-receive ~~~ 敲入: - `--work-tree`:填Nginx网站地址。 - `--git-dir`:填图床仓库地址。 ~~~bash #!/bin/bash git --work-tree=/www/wwwroot/elitecode --git-dir=/home/git/elitecode.git checkout -f ~~~ 之后提取按,赋予**执行权**: ~~~bash chmod +x post-receive ~~~ --- # 六、同步本地仓库 刚刚我们已经创建了`图床仓库`,本地也需要安装Git。这里不再赘述。在安装好后,克隆仓库到本地 ~~~bash git clone git@server-IP:/home/git/elitecode.git ~~~ 其中,`server-IP`为你服务器的IP或域名: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/ZBP2LO4yhJddVD8N.png" alt="image-20241126223636406" width="100%" /> 之后,本地就出现这个仓库了: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/qYiEpKe0GIaIJAZ4.png" alt="image-20241126223720724" width="100%" /> --- # 七、使用图床 之后,我们对本地仓库加入图片: <img src="https://teststock.oss-cn-hangzhou.aliyuncs.com/image-20241126223826229.png" alt="image-20241126223826229" style="zoom:67%;" /> 之后,我们在终端内操作: 服务器: ~~~bash chmod 777 /www/wwwroot/elitecode ~~~ 本地: ~~~git # 添加所有文件 git add # 创建commit git commit -m "init". # 推送到服务器主分支 git push origin HEAD ~~~ --- # 八、创建SSH Key ~~~bash ssh-keygen -t rsa -C "youremail@example.com" ~~~ 补充:ssh-keygen -t rsa -b 4096 -C "邮箱":这条命令的目的是为了让本地机器ssh登录远程机器上的GitHub账户无需输入密码。 > ssh-keygen(基于密匙的安全验证):需要依靠密钥进行安全验证,必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。 > -t 即指定密钥的类型。密钥的类型有两种,一种是RSA,一种是DSA。 > -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。 > -C 表示要提供一个新注释,用于识别这个密钥。“”里面不一定非要填邮箱,可以是任何内容,邮箱仅仅是识别用的key。 如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 --- # 九、Git服务器打开RSA认证 然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即: ~~~asp 1.RSAAuthentication yes 2.PubkeyAuthentication yes 3.AuthorizedKeysFile .ssh/authorized_keys ~~~ 这里我们可以看到公钥存放在.ssh/authorized_keys文件中。所以我们在/home/git下创建.ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。 然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了: ~~~bash cd /home/git mkdir .ssh vim authorized_keys ~~~ <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/PtOrJW2op906irec.webp" alt="image-20241126225108607" width="100%" /> --- # 十、设置git用户不允许Shell登录 为了安全性,一般都禁止 ```bash vi /etc/passwd ``` 按i进入编辑模式,在最后一行将git用户修改成以下配置 ```bash git:x:1000:1000::/home/git:/usr/bin/git-shell ``` 按ESC退出插入模式,输入 “:wq” 保存并且退出vi模式 --- # 十一、启动CDN加速 但是,这样很危险⚠️: - **容易暴露服务器IP** - 加载缓慢 所以,我们需要套上CDN加速。 我们进入CDN控制台,选择`域名管理-添加域名`: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/a9JSAcsi1inPVAVx.webp" alt="image-20241126232037372" width="100%" /> 在添加域名时,如果该域名需校验,在域名下方会提示需验证域名归属权,单击**验证方法**; <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/ysAXGTZAqi46e0tv.webp" alt="image-20241126232718010" width="100%" /> 验证方法中,默认为 DNS 解析验证。 使用 DNS 解析验证的方式,需要您前往该域名的解析服务商,在主域名下添加一个主机记录值为`_cdnauth`的 TXT 记录。 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/JUDpeFDUjF38Vrnd.webp" alt="image-20241126232752028" width="100%" /> <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/KikgeoRmY1Be9lZf.webp" alt="image-20241126233231093" width="100%" /> <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/LNjwvFP7agdMoBxF.webp" alt="image-20241126233610103" width="100%" /> 在添加域名后,进入第三步:配置 CNAME 中,在 CNAME 信息内,复制当前域名的 CNAME 值; <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/iO2pSRygn0CSzeLZ.webp" alt="img" width="100%" /> 前往 [云解析控制台](https://console.cloud.tencent.com/cns),找到对应的域名,单击**解析**按钮; <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/se4KDmDcEoHixapg.webp" alt="img" width="100%" /> **注意:**同一区域不能同时有 CNAME 记录和A记录,如加速域名已经有A记录,则需将A记录切换为 CNAME 记录。 单击**保存**后,即可完成 CNAME 配置。 即可开启CDN,并可以在CDN控制台看到效果: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/npoOWqjBSPas7Ged.webp" alt="image-20241127192903474" width="100%" /> 检测一下域名对应IP,可以看到是CDN节点服务器IP,而不是我们轻量应用服务器的IP: <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/liSdxjReNkmLHJHN.webp" alt="image-20241127193022000" width="100%" /> 注意⚠️: - CDN可能会有延迟,最长需要72小时才可以全球缓存刷新 - 注意配置图片防盗链,避免流量被恶意脚本消耗殆尽 --- # 十二、CNAME ## 1、如何验证 CNAME 是否生效 1. 在配置完成 CNAME 后,您可以在添加域名的第三步中,单击验证 CNAME 状态,查看当前域名 CNAME 是否生效,如果生效状态显示为已生效,则当前 CNAME 解析已正确生效,域名已启动 CDN 加速,如果当前生效状态未生效,需检查当前是否已完成 CNAME 配置,如果确认当前 CNAME 已正确配置,可能是当前解析生效延迟问题,您也可以选择用第3种方式进行验证。 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/BkEQhasN7pyIPkic.webp" alt="img" width="100%" />  2. 您可以在控制台的域名管理列表内查看,如果域名的 CNAME 解析已有正确解析提示,表示当前 CDN 域名加速已生效。如果有两条 CNAME 解析的情况下,其中一条生效即可。 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/8e2bypJJk32L1Yon.webp" alt="img" width="100%" />  3. 您也可以使用 nslookup 或 dig 命令来查看当前域名的解析生效状态。如果您的系统为 Windows 系统,在 Window 系统中打开 cmd 运行程序,以域名`www.test.com`为例,您可以在 cmd 内运行:`nslookup -qt=cname www.test.com`,根据运行的解析结果内,可以查看该域名的 CNAME 信息,如果与腾讯云 CDN 提供的 CNAME 地址一致,即当前 CDN 加速已生效。 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/DAgQpae9DZgcwYqo.webp" alt="img" width="100%" /> 如果您的系统为 Mac 系统或 Linux 系统,可以使用 dig 命令进行验证,以域名`www.test.com`为例,您可以在终端内运行命令:`dig www.test.com`,根据运行的解析结果内,可以查看该域名的 CNAME 信息,如果与腾讯云 CDN 提供的 CNAME 地址一致,即当前的 CDN 加速已生效。 <img src="https://pic.code-nav.cn/post_picture/1796822714790887426/NS837XaQN2o9Q5Kr.webp" alt="img" width="100%" /> --- ## 2、常见问题 ### 域名的 CNAME 已经修改,为什么控制台上还显示未生效? 新增的 CNAME 配置将实时生效,如果是修改 CNAME 配置,根据所设置的 TTL 时长生效时间不一(默认为600s,即10分钟)。如果您已确定完成了正确的 CNAME 配置,可忽略控制台内提示。 ### `example.com`的域名接入后,`www.example.com`有加速效果吗? 没有,`example.com`和`www.example.com`分别属于两个域名,需要在控制台上全部接入才会有 CDN 加速效果。 ### CNAME 域名可以当访问域名使用吗? 不可以,CNAME 域名为腾讯云 CDN 分配给每个域名的专属加速地址,不可以直接作为访问域名使用,需要用户将接入的业务域名 CNAME 到该地址上,访问用户的业务域名,即可有 CDN 加速效果。

springboot + vue3实现图床

项目前后端已上传至Gitee,已经在虚拟机中成功部署,并且访问无问题,但是还有许多可优化的点,后续再慢慢更进,项目地址https://gitee.com/tavernh/drawing-bed

记录一下搭七牛云+picgo+typora

<html> <head></head> <body> <div class="content ql-editor"> <p><br></p> <h1 class="md-end-block md-heading md-focus" style="break-after;break-inside;orphans; font-size: 2.25em;margin-top;margin-bottom;position; line-height: 1.2;border-bottom; color: rgb(51, 51, 51); font-family: &quot;Open Sans&quot;, &quot;Clear Sans&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;Segoe UI Emoji&quot;, sans-serif;"><strong>七牛云图床+picgo+typora</strong></h1> <p><br></p> <p>今天心血来潮就想自己弄一个图床,想到就是干,主要还是想在typora中的图片有个地方放</p> <p><br></p> <p><strong>七牛云</strong></p> <p>首先就是去七牛云官网注册账号<a href="https://portal.qiniu.com/home" target="_blank" style="color: rgb(65, 131, 196);">七牛云 - 产品主页 (qiniu.com)</a> 进行认证,这里我是用学校邮箱注册的,所以可以领取一年够用的免费额度。注册以后就是进行认证,微信扫一扫人脸验证一下就过了。</p> <p><strong>图床</strong></p> <p>要想建立图床就得建立一个对象存储空间如图</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/04dqgmvo.jpeg"></p> <p><span style="background-color: rgb(255, 255, 255); font-size: 17px; color: rgb(47, 48, 52);">然后点击创建新的空间具体步骤如下图</span></p> <p><img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/iuxby5yw.jpeg"></p> <p><br></p> <p><span style="background-color: rgb(255, 255, 255); font-size: 17px; color: rgb(47, 48, 52);">然后进入空间管理点入刚刚创建的空间</span></p> <p><span style="background-color: rgb(255, 255, 255); font-size: 17px; color: rgb(47, 48, 52);"><br></span><img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/f6v3sa79.jpeg"></p> <p>设置自己的域名,这里设置完后,七牛云会提示你去自己的域名服务上添加解析记录,如下面第二个图,第一个就是添加一个记录类型为txt并且主机记录为verification并且记录值要从七牛云给的复制。添加就好了,如果要设置CNAME(也就是一个映射吧,我理解)就再设置一个记录类型为CNAME的解析记录。这里有一个坑就是不能设置两个TXT记录类型,不然能够上传图片,但是没有办法访问。</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/9tl9129c.jpeg"></p> <p><img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/s3wdsede.jpeg"></p> <p><br></p> <p><br></p> <p><strong>picgo</strong></p> <p>图床就这样好了,但是要想好好的用就不够,所以下载了picgo <a href="https://picgo.github.io/PicGo-Doc/zh/guide/#%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85" target="_blank" style="color: rgb(65, 131, 196);">PicGo is Here | PicGo</a> 这是下载地址,傻瓜式安装就好了</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/tc4ogjxs.jpeg"></p> <p>里面的AccessKey和SecrectKey可以去七牛云个人中心获取,bucket就是自己的存储空间的名字,访问网址如果没有https就好加上http:// 网址就是自己设定的网址。存储区域是在自己创建区域时选择的,可以去查对应的编码。最好指定一下路径,好以后管理。</p> <p><br></p> <p><br></p> <p><strong>typora</strong></p> <p>这里就是用picgo插入到软件中,文件---》偏好设置---》图像 插入图片是选择上传图片就可以把图片拖进typora就可以上传到云端了。<img src="https://pic.code-nav.cn/planet_post_image/1645799822881509377/ooigs54d.jpeg"></p> <p><br></p> <p><strong>还有个疑问,就是我用星球的typora激活方法,但是还是会跳出来,试用15天,这是正常的吗</strong></p> </div> </body> </html>

想问下大家md文档复制粘贴的图片问题怎么解决,笔记都记在typora上,图片我放在对应的.assets的文件夹下面,但是复制粘贴的时候图片是不会留下的,typora上面只是记录图片的地址,导致复制到知乎/b站/自己的博客上的时候图片显示不出来 大家有没啥好的解决办法,一张一张拖也太慢了,导致有一些文档因为图片很多,发不出来。

#图床# 哈喽,各位小伙伴 👬 之前图床发生问题,大家历史保存的图片均已上传到网盘(【按照规范填写星球编号上传的目录】)。 今天晚一点会把网盘链接分享在星球,大家自取对应的文件包即可。 如有需要私发链接的可以微信私信下 小y 自己的星球编号,不然等待晚上分享到星球即可,私发人员较多可能回复没那么及时 [皱眉] (图 2 调研链接:https://t.zsxq.com/0c72JVikJ)

Easy Upload

可以上传会用到的一些在线资源,或者文件分享都可以用这个 地址:https://e.docss.cc

路过图床

全球CDN加速, 支持外链, 原图保存, 最大单张支持10 MB!本站已启用自动检测技术,禁止上传任何违法图片 地址:https://imgchr.com/

SM.MS

SM.MS是由V2EX大佬做的一个免费图床项目,个人感觉在国内访问速度较快,免费额度是5G,无外链限制,无流量限制,唯一要注意的是,请勿上传非法图片。 地址:https://sm.ms/

下载 APP