2013-04-17 2 views
4

У меня есть ведро Amazon S3 (назовем его static.example.com), которое мне нужно установить на экземпляр EC2 (Ubuntu 12.04.2). Я установил s3fs. Я могу установить громкость, но я не могу писать в ведро. Я пробовал:Как смонтировать том S3 с соответствующими разрешениями с помощью FUSE

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

Хорошо, может быть глупый вопрос, и я бы не спросить его, если вы четко сказали так, но вы запустили cd/mkdir как фактический _user_ 'www-data', а не как другой пользователь в группе' www-data', так? –

+0

@JoachimIsaksson Да, я пробовал 'sudo su www-data', а затем команду' mkdir'. Я получил тот же 'mkdir: не могу создать каталог' test ': Permission denied' –

+0

Мне кажется, что вы делаете это правильно. Попробуйте эту команду: 'sudo -u www-data mkdir/mnt/static.example.com/test' – adosaiguas

ответ

5

Я ведущий разработчик и сопровождающий проект с открытым кодом RioFS: а файловая система в пользовательском пространстве для установки Amazon S3 ковши.

Наш проект является альтернативой проекту «s3fs», основными преимуществами по сравнению с «s3fs» являются: простота, скорость операций и отсутствие ошибок. В настоящее время the project находится в состоянии «бета», но на некоторое время он работает на нескольких высоконагруженных файловых серверах.

Мы ищем больше людей, чтобы присоединиться к нашему проекту и помочь в тестировании. Со своей стороны мы предлагаем исправления ошибок и будем слушать ваши запросы о добавлении новых функций.

Что касается вашего вопроса:

if'd вы используете RioFS, вы можете смонтировать ведро и иметь доступ на запись к нему с помощью следующей команды (если вы установили RioFS и экспортировали AWSACCESSKEYID и AWSSECRETACCESSKEY переменные окружения) :

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

(см проецировать описание аргументов командной строки)

Пожалуйста, обратите внимание, что проект все еще находится в разработке, есть сотрудничество uld все равно останется несколько ошибок.

Если вы обнаружили, что что-то не работает должным образом: пожалуйста, заполните отчет о проблеме на project's GitHub page.

Надеюсь, что это поможет, и мы с нетерпением ждем встречи с нашим сообществом!

+0

Он работает! Спасибо @Wizzard –

+0

@Wizzard Это делает все файлы отображаемыми как 'rw-r - r -', принадлежащие моему пользователю (а не www-data). Как я могу заставить файлы разрешить запись для группы или принадлежать www-data? –

+1

Прочитав README более тщательно (duh), я увидел опции -uid и -gid. Из-за ошибки в моем приложении, я не уверен, что нужны были --fmode 0664 и --dmode 0775, но я их использовал. –

0

Это работает для меня:

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 
Смежные вопросы