麻了!一觉醒来,图片链接全挂了。。

542次阅读  |  发布于2年以前

前 言

作为一名程序员,利用Markdown来记笔记或者写文档是十分常见的工作场景,但是Markdown写作过程中关于图片文件的处理一直是一个痛点问题。

直接放到电脑本地不便于文档同步和上传,图片文件的路径问题也不好处理;而放到其他平台又会担心某一天**图片链接突然失效**,或者图片外链被屏蔽。

之前一些平台突然禁用图片外链,很多同学的图片都放在上面,一觉醒来发现个人图片链接全挂了。。

所以这时候自建一个属于自己的个人专属图床就十分有必要了。

所以本文将实际展示如何搭建并上线一个专属个人图床来解决这个痛点。

环境准备

首先是要准备一台服务器来作为部署平台,我们这里准备的是一台Linux云主机。

作为一个云服务器的老用户,平时部署一些小程序、网站、应用等经常会用。

本文选用轻量应用服务器Lighthouse作为部署平台来进行部署搭建,原因很简单。

首先是它可以提供轻量化的云端部署环境,个人应用和项目的快速部署比较适合。

其次主要是因为Lighthouse可提供了比较丰富的系统镜像和应用镜像,对于开发者来说开箱即用这点非常高效。比如我们这一次项目部署需要用到Docker环境,所以只需要在Lighthouse中选择对应的Docker应用镜像即可,非常方便。

另外Lighthouse也提供公网IP,上手和管理都比较方便。

这里我们选用Chevereto来进行图床项目的打造,它是一个使用广泛的图床工具,而且其开源免费版就已经够用了。

GitHub地址:https://github.com/rodber/chevereto-free

而且出于快速部署考虑,我们下文会基于Docker工具来进行部署,方便快捷。

素材准备完毕之后,接下来我们进行项目的搭建和部署。

部署项目

服务器初始化完成以后,由于我们选的是Docker应用镜像,所以本身的Docker应用环境就已经开箱即用了。

Docker Hub上已经有关于chevereto的Docker镜像https://hub.docker.com/r/nmtan/chevereto

我们直接使用其提供的docker-compose.yaml脚本即可快速部署。

不过在此之前需要先安装一下docker-compose,我们可以通过pip3来安装,这在Lighthouse上也非常简单,Lighthouse默认就集成有pip3工具,所以执行如下命令即可安装:

pip3 install -U pip setuptools
pip3 install docker-compose

然后我们需要准备两个文件夹,用来存放相关的数据和文件。

mkdir -p /home/db/mysql
mkdir -p /home/chevereto/images

注意,由于在容器内,Chevereto将以用户www-data(UID:33,GID:33)的身份来运行,所以我们需要让目录/home/chevereto/images具备对应用户的读写访问权限,所以这里要先更改一下该目录的所有权才能使后续的部署工作正常进行。

chown -R 33 /home/chevereto/images

好,这些都完成以后,接下来我们新建一个docker-compose.yaml文件,其内容如下:

version: '3'

services:
  db:
    image: mariadb:10.8.2
    volumes:
      - /home/db/mysql:/var/lib/mysql
    restart: always
    networks:
      - private
    environment:
      MYSQL_ROOT_PASSWORD: chevereto_root
      MYSQL_DATABASE: chevereto
      MYSQL_USER: chevereto
      MYSQL_PASSWORD: chevereto

  chevereto:
    depends_on:
      - db
    image: nmtan/chevereto
    restart: always
    networks:
      - private
    environment:
      CHEVERETO_DB_HOST: db
      CHEVERETO_DB_USERNAME: chevereto
      CHEVERETO_DB_PASSWORD: chevereto
      CHEVERETO_DB_NAME: chevereto
      CHEVERETO_DB_PREFIX: chv_
    volumes:
      - /home/chevereto/images:/var/www/html/images
    ports:
      - 80:80

networks:
  private:
volumes:
  database: 
  chevereto_images: 

然后执行一行命令,即可启动图床项目:

docker-compose up -d

接下来打开浏览器,直接输入服务器公网IP就能进入图床的初始化页面了。

配置图床

接上一步,首次访问图床时,需要做一些设置:

然后点击Install Chevereto,即可开始安装。

安装完成以后,打开dashboard,然后输入自己的用户名和密码即可进入图床了。

接下来就可以上传和管理图片了。

但是目前还有一个问题是,如果每次都采用网页端进行图片的上传和管理难免有些不方便,这时候我们可以通过配合一些工具来进行高效工作。

配置PicGo

我们都知道,PicGo是一个用于快速上传图片并获取图片URL链接的工具,所以我们通过组合PicGo+Chevereto,从而可以获得更好的图片上传及管理体验。

PicGo的安装非常简单,支持多种平台,直接下载安装包然后安装即可。

https://github.com/Molunerfinn/picgo/releases

安装完成之后,首先我们需要在「插件设置」里搜索并安装一个chevereto插件。

然后需要设置chevereto插件的一些参数,让其对接到我们刚搭建好的chevereto项目即可。

其中Url为:http://服务器IP/api/1/upload

Key则需要去图床网站DashboardSetting设置中获取:

PicGo配置完成以后,这样后续就可以通过其来进行快速图片上传了:

并且可以快速拿到图片各种格式的链接地址。

而且PicGo也可以捕捉到粘贴板里的图片,刚截完图或者从某个地方复制了图片之后,从快捷工具栏进入到PicGo时也会被识别到。

如此一来,这样就非常方便了。

后 记

以上就是图床程序的搭建和部署,可以看出来,整个过程非常方便快捷,有兴趣的同学也可以自行部署和体验。

其实对于这类轻量化应用的快速部署,Lighthouse是非常适合的。昨天正好也参加了腾讯Techo Day技术开放日活动,看到了很多轻量化的云端工具,也分享了不少与之相关的技术原理及应用案例,以及动手实验室指导如何使用Lighthouse快速构建属于自己的云端硬盘,可以说都比较实用。所有的资料和课件都被整合成了一份《腾讯云轻量级工具指南》,里面除了Lighthouse以外,也涵盖了不少像如何利用Serverless实现事件驱动、如何基于Spring Cloud Tencent快速构建高可用轻量级微服务应用等课程及解决方案,能够帮助开发者实现降本提效,优化工作流程 。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8