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


你可能感兴趣的:(SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile))