[教程] 自建图床+PicGo实现Typora上传图片,内外网皆可,附源码

笔记搬来搬去,图片都裂了,每次移动一个笔记都得找半天之前的图片,老的笔记有时候都找不全,只剩下笔记碎片了(
所以一不做二不休,把家里限制的小nas给搬出来兼职做图床服务器。你问我为啥不用现有的厂商图床? 闲的

整体架构

在这里插入图片描述
在这里插入图片描述
可以看出流程其实很简单的。我们只需要一个存图片的接口、一个存的地方和PicGo

图床

实际上就是一个提供Nginx + 存储图片接口的服务 + 存储空间,自己写起来很快的
懒得写就直接用我的,只需要修改保存路径、nginx配置即可: https://github.com/Saltysth/SaltyCloudCanvas
注意一下接口返回值要是JSON格式就行
贴一下核心代码

	// URL类里就一个String属性
    public URL putImage(MultipartFile image) {
        // 文件夹命名是按月份的
        String format = DateUtil.format(new Date(), "yyyy_MM");
        // 检查一下文件夹在不在 不在就补上
        String prePath = localPath + "/" + format;
        File f = new File(prePath);
        if (!f.exists()) {
            f.mkdirs();
        }
        //图片路径
        String filepath = prePath + "/" + image.getOriginalFilename();
        File file = new File(filepath);
        //上传图片
        try {
            image.transferTo(file);
        } catch (IllegalStateException | IOException e) {
            log.error("存图片时出现异常!");
            e.printStackTrace();
        }
        // 返回URL
        String res = url + format + "/" + image.getOriginalFilename();
        log.info("生成URL:" + res);
        return URL.builder().url(res).build();
    }

Nginx配置,为了能够访问到存储的位置

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
    
    server {
      listen 80;
      # 修改成请求方
      server_name localhost;
      # 你想用的访问url格式
      location /load_image {
      # 实际存储位置
	    alias "/tmp/statics";
      }
    }
}

PicGo

官网:https://molunerfinn.com/PicGo/
直接下载安装就好,这里说的是PicGo App 不是 Core命令行。
安装好后先把我们需要的插件装好:搜索 [自定义],安装那个web-uploader 1.1.1
在这里插入图片描述
之后我们在图床设置这里填写刚才服务的接口参数,注意一下Json路径一定要填写正确哦,如果按照我的代码的话,这里填写 [url]在这里插入图片描述
这样的话配置就完成了,在这里选择刚才的配置进行测试,没问题的话上传完就可以在相册中查看到图片了
在这里插入图片描述

外网相关

自己局域网做个内网隧道,或者搬到服务器上面后限定端口和域名就可以使用了。但是!一定要注意风险把控,外网意味着有人可能不怀好意,安全问题自己要小心负责,建议直接用各大厂家的图床,省事。如果有什么问题可以评论私信。

参考

  1. https://github.com/Saltysth/SaltyCloudCanvas
  2. https://molunerfinn.com/PicGo/
  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值