apache - 如何使用 FUSE 以适当的权限挂载 S3 卷

标签 apache amazon-s3 ubuntu-12.04 fuse s3fs

我有一个 Amazon S3 存储桶(我们称之为 static.example.com),我需要将它安装在 EC2 实例(Ubuntu 12.04.2)上。我已经安装了 s3fs。我可以挂载卷,但无法写入存储桶。我试过了:

sudo s3fs static.example.com -o use_cache=/tmp,allow_other,uid=33,gid=33 /mnt/static.example.com

然后我可以 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

这一切看起来都不错,但是当我cd static.example.commkdir test ,我得到:
mkdir: cannot create directory `test': Permission denied

我实际上可以创建目录或触摸文件的唯一方法是使用 sudo 强制它。 .然而,这不是一个可行的选择,因为我想从 Apache 将文件写入存储桶。我的 Apache 服务器以 user:group www-data 运行。运行 mount产量:
s3fs on /mnt/static.example.com type fuse.s3fs (rw,nosuid,nodev,allow_other)

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

最佳答案

我是开源项目的首席开发者和维护者 RioFS :用于挂载 Amazon S3 存储桶的用户空间文件系统。

我们的项目是“s3fs”项目的替代品,与“s3fs”相比的主要优势是:简单、操作速度快、代码无错误。当前 the project处于“测试版”状态,但它已经在几个高负载的文件服务器上运行了很长一段时间。

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

关于你的问题:

如果你使用 RioFS ,您可以使用以下命令挂载存储桶并对其进行写访问(假设您已安装 RioFS 并已导出 AWSACCESSKEYID 和 AWSSECRETACCESSKEY 环境变量):

riofs  -o allow_other http://s3.amazonaws.com bucket_name /mnt/static.example.com

(命令行参数请引用项目描述)

请注意,该项目仍在开发中,可能仍然存在许多错误。

如果您发现某些事情没有按预期工作:请在 project's GitHub page 上填写问题报告.

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

关于apache - 如何使用 FUSE 以适当的权限挂载 S3 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16069784/

相关文章:

apache - 如何为 Docker Apache httpd 服务器启用 CORS?

amazon-web-services - AWS 凭证已刷新但仍已过期

django - 指向 s3boto 中的多个 S3 存储桶

c++ - libusb 无法打开 USB 设备,权限为 isse.NetBeans/Ubuntu

python - 导入错误 : No module named datetime

linux - 使用 HTACCESS 在 URL 中隐藏文件夹

http-headers - 无法删除响应 header 中的服务器(Amazon AWS)

php - 如何使用 XAMPP 查看 phpmyadmin?

java - 如何等待主线程直到AWS S3文件上传完成

c++ - UBUNTU C++ 编译器找不到头文件