打造私人云笔记,创造舒适的写作空间

  1. 搭建Minio 图片文件服务器 (树莓派4B搭建Minio+公网云服务器用nps内网穿透)
  2. Typora 安装客户端 --> 可以利用免费gitee管理文档
  3. 利用Typora 图像自定义文件上传功能 + Minio强大的API功能

一、树莓派4B 64bit raspberry 操作系统 + Docker Minio 图片文件服务器 + 公网云服务器用nps内网穿透

1. 安装部署docker容器
shell 复制代码
#官方脚本:会自动检测当前的系统和版本后,安装docker,只需要在联网情况下,耐心等待
sudo curl -fsSL https://get.docker.com | sh

#或者这样安装
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-get update

#查找可用版本
sudo apt-cache madison docker-ce

#安装最新版本
sudo apt-get install docker-ce 

#启动Docker
sudo systemctl start docker

#查看docker启动状态
sudo systemctl status docker

#查看启动中的容器
sudo docker ps

#设置开机自启动
sudo systemctl enable docker.service

#查看docker开机启动状态 enabled:开启, disabled:关闭
sudo systemctl is-enabled docker.service
2. 创建Minio 容器
shell 复制代码
sudo docker run -d -p 11000:9000 -p 11001:9090 \
--net=host \
--name minio \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /media/pi/Elements/minio/data:/data \
-v /media/pi/Elements/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":11001" -address ":11000"


# 
sudo docker run -d -p 11000:9000 -p 11001:9090 \
--net=host \
--name minio \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":11001" -address ":11000"
3. 公网云服务器用nps内网穿透

公网云服务器部署nps服务

通过内网穿透,配置minio web公网访问

使用账号登陆进入进行web文件上传和浏览测试验证

二、 Typora 安装客户端

安装步骤省略;

利用gitee 进行文件托管

三、利用Typora 图像自定义上传功能 + Minio强大的API功能

文件-->偏好设置

由于Minio 强大SDK 功能,我使用Java maven 依赖minio 的依赖包

xml 复制代码
<dependencies>
  <dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.4.4</version>
  </dependency>
</dependencies>
<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Java 代码

java 复制代码
public static void main(String[] args) {
    try {
        // 使用MinIO服务器平台、其访问密钥和密钥创建minioClient。
        MinioClient minioClient = MinioClient.builder()
            .endpoint(MinioConfig.ENDPOINT)
            .credentials(MinioConfig.ACCESS_KEY, MinioConfig.SECRET_KEY)
            .build();
        String blogPermalink = args[0];
        if (blogPermalink.length() != 8) {
            System.out.println("唯一id未设置!");
            return;
        }
        // 循环上传图片
        for (int i = 1; i < args.length; i++) {
            String arg = args[i];
            // 生成自定义文件名, 规则为博客唯一链接id_时间戳+随机2位数
            String fileSuffix = arg.substring(arg.lastIndexOf("."));
            String fileName = String.format("%s_%s%02d%s", blogPermalink, LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli(), (int) (Math.random() * 100), fileSuffix);

            String path = String.format("/%s/%s", IMG_DIR, fileName);
            // 上传图片
            minioClient.uploadObject(UploadObjectArgs.builder()
                                     .bucket(MinioConfig.BUCKET)
                                     .object(path)
                                     .filename(arg)
                                     .build());
            // 打印出来的字符会返回给typora
            System.out.println(String.format("%s/%s/%s/%s", MinioConfig.ENDPOINT, MinioConfig.BUCKET, IMG_DIR, fileName));
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        System.exit(0);
    }
}

打包好,放到指定目录下,然后配置typora 自定义图像

相关推荐
daidaidaiyu5 小时前
一文学习 工作流开发 BPMN、 Flowable
java
SuniaWang6 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
平行云PVT6 小时前
数字孪生信创云渲染技术解析:从混合信创到全国产化架构
linux·unity·云原生·ue5·图形渲染·webgl·gpu算力
韩立学长6 小时前
Springboot校园跑腿业务系统0b7amk02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
sheji34166 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
m0_726965987 小时前
面面面,面面(1)
java·开发语言
heimeiyingwang8 小时前
【架构实战】云原生架构设计原则
云原生·架构
xuhaoyu_cpp_java8 小时前
过滤器与监听器学习
java·经验分享·笔记·学习
LegendNoTitle8 小时前
计算机三级等级考试 网络技术 选择题考点详细梳理
服务器·前端·经验分享·笔记·php
程序员小假8 小时前
我们来说一下 b+ 树与 b 树的区别
java·后端