需求

自己做的图床,上传的图片是没有后缀名的,写文章时,markdown是支持的,可以显示图片,但是,当我把文章复制到微信公众号时,却发现上传失败,手动加了后缀后,能显示,所以需要将图床上所有的图片加上“.jpg”后缀。

因为我使用一个mongo来存储的映射关系,所以第一步要修改mongo中的URL字段。

工作

项目pom.xml,不想用springboot引入一大堆包,所以用了mongodb-driver。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.11.0</version>
<exclusions>
<exclusion>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
<version>3.11.0</version>
</dependency>

java代码,简单的用main函数跑了一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MongoClient mongoClient = MongoClients.create("mongodb://root:root@192.168.0.188:27017/?authSource=admin");
System.out.println("Connect to database successfully");
// 连接到数据库
MongoDatabase database = mongoClient.getDatabase("diffuser");
MongoCollection<Document> collection = database.getCollection("photo");
FindIterable<Document> findIterable = collection.find();
for (Document document : findIterable) {
String url = document.getString("url");
System.out.println(url);
Object id = document.get("_id");
System.out.println(id);
Document filter = new Document();
filter.put("_id", id);
Document update = new Document();
DBObject field = new BasicDBObject();
field.put("url", url + ".jpg");
update.put("$set", field);
collection.updateOne(filter, update);
}

本篇就是记录一下,等以后有同样问题的时候,可以拿来就用。