如何使用FUSE以适当的权限安装S3卷

Ben*_*old 5 apache fuse amazon-s3 s3fs ubuntu-12.04

我有一个我需要在EC2实例(Ubuntu 12.04.2)上安装的Amazon S3存储桶(我们称之为static.example.com).我已经安装了s3fs.我能够安装音量,但我无法写入音量.我试过了:

sudo s3fs static.example.com -o use_cache=/tmp,allow_other,uid=33,gid=33 /mnt/static.example.com
Run Code Online (Sandbox Code Playgroud)

然后我就可以cd /mntls -la看:

drwxr-xr-x  5 root     root      4096 Mar 28 18:03 .
drwxr-xr-x 25 root     root      4096 Feb 19 19:22 ..
lrwxrwxrwx  1 root     root         7 Feb 21 19:19 httpd -> /httpd/
drwx------  2 root     root     16384 Oct  9  2012 lost+found
drwxr-xr-x  1 www-data www-data     0 Jan  1  1970 static.example.com
Run Code Online (Sandbox Code Playgroud)

这一切看起来都不错,但是当我cd static.example.commkdir test我得到:

mkdir: cannot create directory `test': Permission denied
Run Code Online (Sandbox Code Playgroud)

我可以实际创建目录或触摸文件的唯一方法是强制它sudo.但是,这不是一个可行的选择,因为我想从Apache将文件写入存储桶.我的Apache服务器以用户身份运行:group www-data.运行mount收益率:

s3fs on /mnt/static.example.com type fuse.s3fs (rw,nosuid,nodev,allow_other)
Run Code Online (Sandbox Code Playgroud)

如何以允许我写入存储桶的方式安装此存储桶?

Pau*_*aul 5

我是开源项目RioFS的首席开发人员和维护者:用于安装Amazon S3存储桶的用户空间文件系统.

我们的项目是"s3fs"项目的替代品,与"s3fs"相比的主要优点是:简单,操作速度和无错误代码.目前该项目处于"beta"状态,但它已经在几个高负载文件服务器上运行了相当长的一段时间.

我们正在寻找更多人加入我们的项目并帮助进行测试.在我们这边,我们提供快速错误修复,并将听取您添加新功能的请求.

关于你的问题:

如果您使用RioFS,您可以使用以下命令挂载存储桶并具有写入权限(假设您已安装RioFS并已导出AWSACCESSKEYID和AWSSECRETACCESSKEY环境变量):

riofs  -o allow_other http://s3.amazonaws.com bucket_name /mnt/static.example.com
Run Code Online (Sandbox Code Playgroud)

(请参阅命令行参数的项目描述)

请注意,该项目仍处于开发阶段,可能仍有一些漏洞.

如果您发现某些内容无法正常工作:请在项目的GitHub页面上填写问题报告.

希望它有所帮助,我们期待着您加入我们的社区!