mirror of
https://github.com/halo-dev/plugin-s3.git
synced 2026-03-04 01:07:50 +08:00
21b752dd25df60b4fb3ef905a2d203ded1abd598
Fixes https://github.com/halo-dev/halo/issues/2945 ```release-note Add file check with the same name when uploading ``` 我这里使用了ConcurrentHashMap避免**同时**上传两个同名文件导致文件覆盖问题,在本地存储策略中是由操作系统保证的 不知道这样是不是一个好方法 S3AsyncClient中没有`doesObjectExist`类似的方法,官方的文档也让用`headObject`捕获异常的办法来判断文件是否存在,详见https://github.com/aws/aws-sdk-java-v2/blob/master/docs/LaunchChangelog.md 中搜索`doesObjectExist`
plugin-s3
为 Halo 2.0 提供 S3 协议的对象存储策略,支持阿里云、腾讯云、七牛云等兼容 S3 协议的对象存储服务商
开发环境
./gradlew build
修改 Halo 的配置文件
plugin:
runtime-mode: development # development, deployment
classes-directories:
- "build/classes"
- "build/resources"
lib-directories:
- "libs"
fixedPluginPath:
- "path/to/plugin-s3"
启动 Halo 之后即可在后台插件管理看到此插件。
生产构建
./gradlew build
构建完成之后,可以在 build/libs 目录得到插件的 JAR 包,在 Halo 后台的插件管理上传即可。
使用方法
- 在 Releases 下载最新的 JAR 文件。
- 在 Halo 后台的插件管理上传 JAR 文件进行安装。
- 进入后台附件管理。
- 点击右上角的存储策略,在存储策略弹框的右上角可新建 S3 Object Storage 存储策略。
- 创建完成之后即可在上传的时候选择新创建的 S3 Object Storage 存储策略。
Languages
Java
52.1%
TypeScript
37.2%
Vue
10.2%
JavaScript
0.5%