使用nginx一分钟配置一个文件服务器(附:阿里oss文件服务使用、fastDFS文件服务使用)--菜鸟小回

本文介绍如何使用Nginx快速配置文件服务器,并提供Java SpringBoot项目上传文件的方法及返回文件访问路径。涵盖Nginx配置步骤、文件上传服务实现及Windows环境下搭建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用nginx一分钟配置一个文件(图片)服务器(附:Java Spring boot项目上传文件阿里、oss文件服务使用、fastDFS文件服务使用)

  • 前言:作为一名Java工程师,文件服务用的也不少。从最早的fastDFS轻量级图片服务器到第三方如阿里OSS;七牛云存储都用过。 新公司里一方面没有linux服务器,无法搭建fastDFS文件服务器。当然也没有打算买第三方存储。所以,之前使用过的文件服务器都无效。
  • 新的考虑:在windows上搭建文件服务器
  • 解决:nginx作为文件服务器,指定目录存放文件。利用java文件流写入指定文件并返回文件路径。

一、配置nginx,未安装或者配置

  1. 打开nginx配置目录,找到nginx.config文件编辑
location /file {
	alias Z:\file/; 
	#如果目录在download则强制下载
	if ($request_filename ~* ^.*?\/download\/.*$){
      add_header Content-Disposition: 'attachment;';
    }
	autoindex on;
}

enter description here
enter description here

二、在所配置路径上放入一个文件。重启nginx尝试访问文件服务器

  • enter description here
  • 重启nginx
  • 浏览器访问http://localhost:80/file/,实际访问地址按照自己配置路径访问
    enter description here
  • 看到如下目录,文件服务器配置完成
    enter description here

三、附加Java上传文件并返回文件访问路径(Spring Boot)

  1. yml配置nginxFilePath: Z:\file/
    enter description here
//Controller 其中modelName是想将文件放入的文件夹(不存在时自动生成)
@PostMapping("/uploadToNginx")
public String uploadToNginx(@RequestParam("file") MultipartFile file,String modelName) {
	if (file==null){
		return "文件上传失败,请重新选择文件";
	}
	return fileManageService.uploadToNginx(file,modelName);
}
//Service
String uploadToNginx(MultipartFile file, String modelName);
//ServiceImpl
@Override
    public String uploadToNginx(MultipartFile file, String modelName)  {
        try {
            String path=modelName+ "/"+ IdUtil.simpleUUID() +"-"+file.getOriginalFilename();
            File test = new File(nginxFilePath+path);
            if (!test.exists()){
                test.mkdirs();
            }
            file.transferTo(test);
            InetAddress address = InetAddress.getLocalHost();
            String ip=address.getHostAddress();
            String finalPath="http://"+ip+"/file/"+path;
            return finalPath;
        }catch (Exception e){
            log.error(file.getOriginalFilename()+"文件上传失败", e);
            return file.getOriginalFilename()+"文件上传失败";
        }
    }

附加文章参考:

服务器部署—《fastDFS篇》

java中使用fastDFS上传图片(前端ajax+后端ssm)

阿里云OSS使用——java中图片上传返回url(Spring Boot项目中详细使用)

Spring boot+MinIo进行分布式文件服务(工具类+简单测试)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值