当前位置: 首页 > news >正文

JAVA后端自学技能实操合集

JAVA后端自学技能实操

  • 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习
  • FastDFS
    • 使用docker安装FastDFS(linux)
    • 集成到springboot项目中

内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习

FastDFS

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

组名:文件上传后所在的 storage 组名称,在文件上传成功后有storage 服务器返回,需要客户端自行保存。

虚拟磁盘路径:storage 配置的虚拟路径,与磁盘选项store_path*对应。如果配置了

store_path0 则是 M00,如果配置了 store_path1 则是 M01,以此类推。

数据两级目录:storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。

文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储

服务器 IP 地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

使用docker安装FastDFS(linux)

#拉取镜像
docker pull morunchang/fastdfs
#运行tracker(负载均衡和调度)
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
#运行storage(作用是文件存储,称之为存储服务器)下面的***.***.***.***为你的公网地址(fastDFS服务器)
docker run -d --name storage --net=host -e TRACKER_IP=***.***.***.***:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
# 进入到storage容器内部
docker exec -it storage  /bin/bash
#1 通过命令来查询Nginx的安装位置
root@*******************:/# whereis nginx
#2 查看当前Nginx的进程
root@*******************:/# ps aux | grep nginx

在这里插入图片描述
添加以下内容

#3 修改Nginx的配置文件vi /etc/nginx/conf/nginx.conf#4 修改Nginx配置内容server {listen       80;server_name  localhost;	location ~ /M00 {# storage 实际存储图片的位置root /data/fast_data/data;ngx_fastdfs_module;}
}#5 进入到Nginx sbin目录从新加载Nginx配置文件
cd /etc/nginx/sbin
# 重新加载配置文件(切记一定需要重新加载一下配置)
./nginx -s reload

storage存储的位置/data/fast_data/data

#设置开机启动容器
docker update --restart=always  tracker
docker update --restart=always  storage

集成到springboot项目中

1.加坐标

 <!--fastdfs-->
<dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId>
</dependency>

2.加配置文件
fast_dfs.properties

#socket连接超时时长
fdfs.soTimeout=1500
#连接tracker服务器超时时长
fdfs.connectTimeout=600
fdfs.trackerList=***.***.***.***:22122

3.书写配置类

@Configuration
@Import(FdfsClientConfig.class) // 导入FastDFS-Client组件
@PropertySource("fast_dfs.properties")
public class FdfsConfiguration {
}

4.书写配置类工具类

@Component
public class FastDFSClient {@Autowiredprivate FastFileStorageClient storageClient;public String uploadFile(MultipartFile file) throws IOException {StorePath storePath = storageClient.uploadFile((InputStream) file.getInputStream(), file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()), null);return storePath.getFullPath();}public void delFile(String filePath) {storageClient.deleteFile(filePath);}/*** 下载* @param groupName* @param path* @return*/public byte[] download(String groupName, String path) throws IOException {InputStream ins = storageClient.downloadFile(groupName, path, new DownloadCallback<InputStream>() {@Overridepublic InputStream recv(InputStream ins) throws IOException {// 将此ins返回给上面的insreturn ins;}});ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();byte[] buff = new byte[100];int rc = 0;while ((rc = ins.read(buff, 0, 100)) > 0) {byteArrayOutputStream.write(buff, 0, rc);}return byteArrayOutputStream.toByteArray();}
}

再需要的项目里面引入fastdfs,写一个配置

@Configuration
@ComponentScan("com.***.***.fastdfs")
public class FastDfsConfiguration {
}

修改application.yml文件,添加自定义的图片访问ip

#图片访问ip
fdfs.url: http://***.***.***.***/
http://www.lryc.cn/news/256977.html

相关文章:

  • C++ 关联容器
  • ES6之函数新增的扩展
  • postgresql安装部署(docker版本)
  • 【Python/Java/C++三种语言】20天拿下华为OD笔试之【位运算】2023B-出错的或电路【欧弟算法】全网注释最详细分类最全的华为OD真题
  • vscode 编译运行c++ 记录
  • 错题总结(四)
  • ORACLE使用Mybatis-plus批量插入
  • vue,uniapp的pdf等文件在线预览
  • SpringBoot 项目 Jar 包加密,防止反编译
  • DockerFile中途执行出错的解决办法
  • Word插件-好用的插件-一键设置字体--大珩助手
  • 【MODBUS】Modbus主站云端服务器和边缘设备部署区别
  • hbuiler中使用npm安装datav
  • 贾佳亚团队新作LLaMA-VID,2token让大模型学会看好莱坞大片
  • 【数据结构】手撕排序
  • 运维05:自动化
  • OpenCL学习笔记(一)开发环境搭建(win10+vs2019)
  • 寻找两个正序数组的中位数
  • 探索低代码的潜力、挑战与未来展望
  • unity 2d 入门 飞翔小鸟 小鸟碰撞 及死亡(九)
  • 实时最优控制(Real-Time Optimal Control)工具
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • go-zero开发入门-API服务开发示例
  • NVIDIA Jetson NX ubuntu20.04删除多余版本冲突的Boost库
  • 【蜗牛到家】获南明电子信息产业引导基金战略投资
  • 基于ubuntu nc指令实现远程传输文件到嵌入式设备中
  • 蓝桥杯 day01 奇怪的数列 特殊日期
  • properties配置和读取
  • 如何利用人工智能+物联网技术实现自动化设备生产
  • STM32CubeMx+MATLAB Simulink串口输出实验