`
- 浏览:
621348 次
- 性别:
- 来自:
上海
-
SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)
访问文件时Nginx的403 forbidden问题
所谓的Nginx的403错误其实就是访问权限错误.当前用户没有访问该资源的权限,这样理解的话,我们就有两种方案可行.一,降低文件访问的权限等级.二,升高用户的访问权限.下面我们一个一个来看一下如何进行实现.
降低文件访问的权限等级
降低文件的访问权限,我们只需要用到 chmod指令即可.这里简单解释一下chmod指令.
在Mac的使用过程中我们也经常会修改 某个文件的权限,例如:
chmod 777 file
如果如上设置的话,那么任何一个用户都会对这个file文件拥有全部权限.
那么为什么是三位数呢?这是因为这三位数分别代表着档案拥有者User、群组Group、其他Other三者的权限.也就是说拥有者的权限等级为7,群组的权限等级为7,其他权限等级也为7.
那么为什么是7呢?这是因为一个linux文件总共有三种权限,分别是读r,写w,操作x.对应的值分别是4,2,1.当一个用户对某个文件拥有7的数值时,这时候为4+2+1,也就是说他拥有该文件全部的权限.
上面说了 chmod指令的如何使用,那么接下来我们就可以对服务器的文件使用chmod 664 file指令,然后降低文件访问的权限等级.使全部用户都拥有文件的访问权限.但是问题来了,难道用户上传一次,我们就需要手动修改一次文件的权限,这显然是不正确的,那么我们该怎么办呢?这时候我们就需要提高用户的访问权限了.
升高用户的访问权限
提高用户的访问权限,这里其实是修改Nginx的启动者,我们把启动者设置为最多权限者,那么我们就可以访问到文件了.
首先我们先看是谁启动了Nginx需要用到如下的指令.
ps aux | grep "nginx: worker process" | awk '{print $1}'
这里我已经做了修改,截图如下所示.
image.png
本来要是不对Nginx的配置进行任何设置访问的话,那么第一个root应该为nobody,也就是Nginx的启动者.先前已经使用** ls -l file **指令查询了文件的权限情况,root 拥有读写权限,other没有任何权限.所以我们要把启动者改为root即可.
打开Nginx配置文件所在的位置,{nginx}表示你的nginx安装路径.
vi {nginx}/conf/nginx.conf
添加启动者,如下所示.
user root
返回到sbin目录中,准备检测配置文件和重新启动Ngnix.
cd ../sbin/
检测配置文件的正确性
./nginx -t
image.png
检测没有任何问题,重新启动
./nginx -s reload
这时候即可正常访问到文件了.
http://www.cocoachina.com/cms/wap.php?action=article&id=26870
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在大文件上传方面,SpringBoot 提供了支持文件上传的API,我们可以利用这些API来处理文件接收和存储。 ### 分片上传 大文件分片上传是一种优化策略,通过将大文件拆分为多个小块(片段)进行上传,然后在服务器端...
对文件上传和访问功能进行单元测试,确保代码的正确性。可以使用MockMultipartFile来模拟文件上传请求,然后验证文件是否正确保存和返回的URL是否有效。 9. **性能优化**: - **异步处理**:如果文件上传量大,...
springboot 大文件上传,支持分片并发上传、断点续传、秒传,已经测试过1.2G的文件,最大支持理论无限制 博文链接:https://blog.csdn.net/haohao123nana/article/details/54692669
在Spring Boot应用中,本地文件上传和HTTP访问服务的实现是一项常见的需求,特别是在处理用户上传的文件,如图片、文档等场景下。Spring Boot为此提供了一套简洁的配置和API来支持这一功能。本文将详细讲解如何配置...
本项目"springboot+vue 大文件上传 包括断点续传 秒传 分片上传.zip"提供了一套完整的解决方案,针对大文件上传进行了优化,确保了上传的高效性和可靠性。 首先,我们来看SpringBoot的部分。SpringBoot是基于Spring...
在现代Web应用中,大文件上传和下载是常见的需求,特别是在云存储、文件分享和协作平台等场景。本文将深入探讨如何使用`WebUploader`前端组件与`SpringBoot`后端框架来实现这一功能,同时支持断点续传和秒传。 `...
总结,Java SpringBoot实现文件上传主要涉及配置文件设置、创建Controller处理请求、使用`MultipartFile`接口来操作上传文件,并根据实际需求进行文件验证、存储和管理。通过这些步骤,你可以构建出稳定、安全的文件...
在Java SpringBoot框架中,处理大文件上传是一个常见的需求,特别是在大数据时代,用户可能需要上传GB级别的文件。传统的单次上传方式可能会面临超时、内存溢出等问题,因此,采用切割分片上传的方式能有效解决这些...
2. **MultipartFile处理**:SpringBoot提供了`MultipartFile`接口,用于处理文件上传。它封装了文件内容、原始文件名、文件类型等信息,便于在服务器端进行操作。 3. **配置文件上传限制**:在SpringBoot中,可以...
在Spring Boot框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这个"文件上传下载-springboot-demo.zip"压缩包很可能是提供了一个简单的示例项目,用于演示如何在Spring Boot应用中实现这些...
本示例项目"springboot单,多文件上传demo"提供了实现这一功能的方法,包括单个文件上传和多个文件上传的处理。下面将详细介绍如何在Spring Boot中实现这些功能。 1. **单文件上传** 单文件上传适用于用户仅需提交...
SpringMVC是一个强大的...综上所述,使用SpringMVC和`MultipartFile`可以方便地处理文件上传,而结合FTP服务则可以实现在本地和远程服务器之间的文件传输。理解并掌握这些技术可以帮助开发者构建更健壮的文件管理系统。
总结来说,`MultipartFile`是Spring框架处理多文件上传的核心工具,结合前端的文件选择和`webuploader`等库可以实现断点续传功能,提升用户体验。在后台处理文件时,通常需要先执行数据库操作,确保数据一致性,然后...
在Spring Boot应用中,文件上传是一项常见的功能,用于接收用户上传的文件,如图片、文档等。本项目利用Spring Boot的内置组件`...通过合理的配置和代码设计,我们可以构建一个安全、稳定的文件上传系统。
在本教程中,我们将深入探讨如何使用SpringBoot框架与MinIO进行集成,以实现文件的上传和下载功能。SpringBoot以其简洁的配置和强大的功能深受Java开发者喜爱,而MinIO则是一个高性能的对象存储服务器,适合处理大...
本篇文章将详细讲解如何在SpringBoot项目中实现文件的上传和下载功能,以及相关的数据库设计。 首先,我们需要设计一个数据库表来存储文件信息。根据描述中的信息,我们可以创建一个名为`files`的表,包含以下字段...
我们还使用 `MultipartFile` 对象来处理文件上传,然后将文件保存到指定的目录下,并返回上传文件的访问路径。 四、结论 在本文中,我们介绍了使用 SpringBoot 实现本地存储文件上传及提供 HTTP 访问服务的方法。...
`StorageService`接口定义了存储和检索文件的方法,如`store(MultipartFile file)`用于存储文件,`load(String filename)`用于根据文件名加载文件,以及`deleteAll()`用于清除所有存储的文件。然后,创建一个实现`...
本知识点主要聚焦于如何在Android中实现单文件和多文件的上传,以及后台使用`MultipartFile`类进行处理的方式。`MultipartFile`是Spring框架中的一个接口,常用于处理HTTP请求中的多部分(multipart)数据,包括文件...
SpringBoot的`MultipartFile`类可以用来处理上传的文件。 2. **文件存储**:接收到文件后,我们需要将其保存在服务器上。可以选择本地文件系统、Amazon S3、Google Cloud Storage或其他云存储服务。SpringBoot可以...