我正在使用命令
将S3存储桶安装到Ubuntu VM s3fs my-bucket /mnt/s3-bucket -o use_rrs -o allow_other -o use_cache=/tmp
此卷已正确安装到VM。也能够将文件从/mnt/s3-bucket/*
复制到任何其他位置。
我正尝试通过Nginx在此位置提供服务以下载这些文件。
但是当我单击文件名时,我得到403 Forbidden
nginx.conf:
server {
listen 8080 default_server;
server_name localhost;
keepalive_timeout 70;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript;
location / {
root /mnt/s3-bucket;
autoindex on;
}
}
目录权限:
root@factory:~# ls -alh /mnt/s3-bucket
total 56K
drwxrwxrwx 1 ubuntu ubuntu 0 Jan 1 1970 .
drwxr-xr-x 3 root root 4.0K Jul 19 20:30 ..
-rw-r----- 1 ubuntu ubuntu 50K Jul 19 18:19 controller_1.34.0.tar
drwxr-x--- 1 ubuntu ubuntu 0 Jul 19 18:28 firmware
root@factory:~#
试图更改文件权限
root@factory:~# chown -R root:root /mnt/s3-bucket
chown: changing ownership of '/mnt/s3-bucket': Input/output error
root@factory:~#
我缺少什么?我如何通过Nginx服务器下载可下载的S3文件
答案 0 :(得分:1)
S3存储桶中的文件归ubuntu:ubuntu
所有,因为S3存储桶已使用参数-o uid=1000 -o gid=1000
进行了mountet。这些是用户 ubuntu 和组 ubuntu 的ID。
处理http请求的nginx工作进程以其他用户身份运行。通常是 www-data 。
如果要启用Nginx来访问S3存储桶中的文件,则必须将 uid 和 gid 替换为 www-data < / strong>。
id -u www-data
显示 uid ,而id -g www-data
显示 gid