java oss 完整_java实现简单的oss存储

oss

工作中需要用到文件上传,之前使用的是本地文件系统存储方式,后来重构为支持多个存储源的方式,目前支持三种方式:local、seaweedfs、minio

存储介质

seaweedfs

# 启动 master

docker run -d \

-p 9333:9333 \

-p 19333:19333 \

-v /home/mining/report-cloud/docker/seaweedfs/master/data:/data \

--name seaweedfs-master \

chrislusf/seaweedfs:1.53 \

master -ip=master

# 启动 volume

docker run -d \

-p 8080:8080 \

-p 18080:18080 \

-v /home/mining/report-cloud/docker/seaweedfs/volume01/data:/data \

--name seaweedfs-volume \

--link seaweedfs-master:master \

chrislusf/seaweedfs:1.53 \

volume -max=5 -mserver="master:9333" -port=8080

# 申请空间

curl http://localhost:9333/dir/assign

#

{"count":1,"fid":"4,017f52110b","url":"127.0.0.1:8080","publicUrl":"localhost:80

80"}

# 推送文件,4,017f52110b表示第4个volume,017f52110b表示文件的唯一标识

curl -F file=@/home/seaweedfs/balance.png http://127.0.0.1:8080/4,017f52110b

minio

MinIO是与Amazon S3 API兼容的高性能对象存储服务器,提供了人性化的管理页面

https://github.com/minio/minio

docker run --name report-minio \

-p 19000:9000 \

-e "MINIO_ACCESS_KEY=qweasdzxc" \

-e "MINIO_SECRET_KEY=1234567890" \

-v /home/mining/report-cloud/docker/minio:/data \

-d minio/minio:latest server /data

# web 管理页面

http://localhost:19000/minio/login

# 创建一个 bucket 为 report

# 通过URL直接访问文件需要设置权限,参考下面博客

# https://blog.csdn.net/iKaChu/article/details/105809957

# 访问格式为

http://localhost:19000/bucket名/对象名

Java代码

maven依赖

org.lokra.seaweedfs

seaweedfs-client

0.7.3.RELEASE

io.minio

minio

3.0.10

代码

配置类

FileTag 枚举类

用来标记使用哪种存储介质

/**

* 文件上传的tag

*/

public enum FileTag {

TYPE_LOCAL,

TYPE_MINIO ,

TYPE_SEAWEEDFS;

}

FileUploadConfigLocal

本地存储配置类

public class FileUploadConfigLocal {

private String parentPath;

// 省略 get se

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值