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

  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 自定义图像

相关推荐
昵称为空C1 天前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默1 天前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
Java中文社群1 天前
重要:Java25正式发布(长期支持版)!
java·后端·面试
每天进步一点_JL1 天前
JVM 类加载:双亲委派机制
java·后端
阿里云云原生1 天前
【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!
云原生
用户298698530141 天前
Java HTML 转 Word 完整指南
java·后端
渣哥1 天前
原来公平锁和非公平锁差别这么大
java
容器魔方1 天前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
渣哥1 天前
99% 的人没搞懂:Semaphore 到底是干啥的?
java
J2K1 天前
JDK都25了,你还没用过ZGC?那真得补补课了
java·jvm·后端