`

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


分享到:
评论

相关推荐

    vue+springboot 大文件上传

    在大文件上传方面,SpringBoot 提供了支持文件上传的API,我们可以利用这些API来处理文件接收和存储。 ### 分片上传 大文件分片上传是一种优化策略,通过将大文件拆分为多个小块(片段)进行上传,然后在服务器端...

    SpringBoot 实现文件上传到本地目录 并返回可访问的文件地址.rar

    对文件上传和访问功能进行单元测试,确保代码的正确性。可以使用MockMultipartFile来模拟文件上传请求,然后验证文件是否正确保存和返回的URL是否有效。 9. **性能优化**: - **异步处理**:如果文件上传量大,...

    springboot大文件分片上传

    springboot 大文件上传,支持分片并发上传、断点续传、秒传,已经测试过1.2G的文件,最大支持理论无限制 博文链接:https://blog.csdn.net/haohao123nana/article/details/54692669

    SpringBoot实现本地存储文件上传及提供HTTP访问服务.docx

    在Spring Boot应用中,本地文件上传和HTTP访问服务的实现是一项常见的需求,特别是在处理用户上传的文件,如图片、文档等场景下。Spring Boot为此提供了一套简洁的配置和API来支持这一功能。本文将详细讲解如何配置...

    springboot+vue 大文件上传 包括断点续传 秒传 分片上传.zip

    本项目"springboot+vue 大文件上传 包括断点续传 秒传 分片上传.zip"提供了一套完整的解决方案,针对大文件上传进行了优化,确保了上传的高效性和可靠性。 首先,我们来看SpringBoot的部分。SpringBoot是基于Spring...

    webuploader + springboot实现大文件的上传下载

    在现代Web应用中,大文件上传和下载是常见的需求,特别是在云存储、文件分享和协作平台等场景。本文将深入探讨如何使用`WebUploader`前端组件与`SpringBoot`后端框架来实现这一功能,同时支持断点续传和秒传。 `...

    java springboot 文件上传,多文件上传.zip

    总结,Java SpringBoot实现文件上传主要涉及配置文件设置、创建Controller处理请求、使用`MultipartFile`接口来操作上传文件,并根据实际需求进行文件验证、存储和管理。通过这些步骤,你可以构建出稳定、安全的文件...

    java springboot 切割分片上传大文件

    在Java SpringBoot框架中,处理大文件上传是一个常见的需求,特别是在大数据时代,用户可能需要上传GB级别的文件。传统的单次上传方式可能会面临超时、内存溢出等问题,因此,采用切割分片上传的方式能有效解决这些...

    springboot 实现超大文件上传实例

    2. **MultipartFile处理**:SpringBoot提供了`MultipartFile`接口,用于处理文件上传。它封装了文件内容、原始文件名、文件类型等信息,便于在服务器端进行操作。 3. **配置文件上传限制**:在SpringBoot中,可以...

    文件上传下载-springboot-demo.zip

    在Spring Boot框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这个"文件上传下载-springboot-demo.zip"压缩包很可能是提供了一个简单的示例项目,用于演示如何在Spring Boot应用中实现这些...

    springboot单,多文件上传demo

    本示例项目"springboot单,多文件上传demo"提供了实现这一功能的方法,包括单个文件上传和多个文件上传的处理。下面将详细介绍如何在Spring Boot中实现这些功能。 1. **单文件上传** 单文件上传适用于用户仅需提交...

    多文件上传MultipartFile

    总结来说,`MultipartFile`是Spring框架处理多文件上传的核心工具,结合前端的文件选择和`webuploader`等库可以实现断点续传功能,提升用户体验。在后台处理文件时,通常需要先执行数据库操作,确保数据一致性,然后...

    SpringBoot+文件上传

    在Spring Boot应用中,文件上传是一项常见的功能,用于接收用户上传的文件,如图片、文档等。本项目利用Spring Boot的内置组件`...通过合理的配置和代码设计,我们可以构建一个安全、稳定的文件上传系统。

    SpringBoot(31) 整合MinIO实现文件上传与下载

    在本教程中,我们将深入探讨如何使用SpringBoot框架与MinIO进行集成,以实现文件的上传和下载功能。SpringBoot以其简洁的配置和强大的功能深受Java开发者喜爱,而MinIO则是一个高性能的对象存储服务器,适合处理大...

    SpringBoot文件上传下载

    本篇文章将详细讲解如何在SpringBoot项目中实现文件的上传和下载功能,以及相关的数据库设计。 首先,我们需要设计一个数据库表来存储文件信息。根据描述中的信息,我们可以创建一个名为`files`的表,包含以下字段...

    SpringBoot实现本地存储文件上传及提供HTTP访问服务的方法

    我们还使用 `MultipartFile` 对象来处理文件上传,然后将文件保存到指定的目录下,并返回上传文件的访问路径。 四、结论 在本文中,我们介绍了使用 SpringBoot 实现本地存储文件上传及提供 HTTP 访问服务的方法。...

    SpringBoot实现文件上传和下载.docx

    `StorageService`接口定义了存储和检索文件的方法,如`store(MultipartFile file)`用于存储文件,`load(String filename)`用于根据文件名加载文件,以及`deleteAll()`用于清除所有存储的文件。然后,创建一个实现`...

    基于springboot的文件在线预览.rar

    SpringBoot的`MultipartFile`类可以用来处理上传的文件。 2. **文件存储**:接收到文件后,我们需要将其保存在服务器上。可以选择本地文件系统、Amazon S3、Google Cloud Storage或其他云存储服务。SpringBoot可以...

    springboot单文件和多文件上传

    在本教程中,我们将探讨如何在Spring Boot中实现单文件和多文件的上传。 首先,我们需要了解`MultipartFile`,这是Spring MVC框架中处理文件上传的核心接口。`MultipartFile`提供了诸如获取文件名、读取文件内容、...

    springboot文件上传(支持单个和多个)

    本教程将详细讲解如何在Spring Boot应用中实现单个和多个文件的上传,并处理与系统兼容性和虚拟路径映射相关的问题。 首先,我们需要在Spring Boot项目中引入相关依赖。在`pom.xml`文件中添加`spring-boot-starter-...

Global site tag (gtag.js) - Google Analytics