8

我有一个需要安装在 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 服务器以 user:group www-data 身份运行。运行mount产量:

s3fs on /mnt/static.example.com type fuse.s3fs (rw,nosuid,nodev,allow_other)

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

4

3 回答 3

7

我是开源项目RioFS的主要开发人员和维护人员:一个用于挂载 Amazon S3 存储桶的用户空间文件系统。

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

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

关于你的问题:

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

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

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

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

如果您发现某些事情没有按预期工作:请在项目的 GitHub 页面上填写问题报告。

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

于 2013-04-28T13:33:26.797 回答
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
于 2017-02-11T23:04:34.960 回答
-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

于 2013-04-18T17:54:33.840 回答