我有一个需要在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
然后我可以cd /mnt
和ls -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.com
和mkdir test
时,我得到:
mkdir: cannot create directory `test': Permission denied
我实际创建目录或触摸文件的唯一方法是使用sudo
强制它。但是,这不是一个可行的选择,因为我想从Apache将文件写入存储桶。我的Apache服务器以用户身份运行:group www-data。运行mount
会产生:
s3fs on /mnt/static.example.com type fuse.s3fs (rw,nosuid,nodev,allow_other)
如何以允许我写入存储桶的方式安装此存储桶?
答案 0 :(得分:5)
我是开源项目RioFS的首席开发人员和维护者:用于安装Amazon S3存储桶的用户空间文件系统。
我们的项目是“s3fs”项目的替代品,与“s3fs”相比的主要优点是:简单,操作速度和无错误代码。目前the project处于“beta”状态,但它已经在几个高负载文件服务器上运行了相当长的一段时间。
我们正在寻找更多人加入我们的项目并帮助进行测试。在我们这边,我们提供快速错误修复,并会听取您添加新功能的请求。
关于您的问题:
如果您使用RioFS,则可以使用以下命令挂载存储桶并具有写入权限(假设您已安装RioFS并已导出AWSACCESSKEYID和AWSSECRETACCESSKEY环境变量):
riofs -o allow_other http://s3.amazonaws.com bucket_name /mnt/static.example.com
(请参阅命令行参数的项目描述)
请注意,该项目仍处于开发阶段,可能仍有一些漏洞。
如果您发现某些内容无效,请填写project's GitHub page上的问题报告。
希望它有所帮助,我们期待着您加入我们的社区!
答案 1 :(得分:1)
这对我有用:
sudo s3fs bucketname /mnt/folder -o allow_other,nosuid,use_cache=/mnt/foldercache
如果您需要调试,只需添加,f2 -f -d
:
sudo s3fs bucketname /mnt/folder -o allow_other,nosuid,use_cache=/mnt/foldercache,f2 -f -d
答案 2 :(得分:-1)
使用S3Backer尝试此方法:
mountpoint/
file # (e.g., can be used as a virtual loopback)
stats # human readable statistics
了解更多关于它的信息: http://www.turnkeylinux.org/blog/exploring-s3-based-filesystems-s3fs-and-s3backer