Я нахожусь в экземпляре EC2, и я хочу связать свой PHP-сайт с моим ковшом Amazon S3, я уже видел API для PHP здесь: http://aws.amazon.com/sdkforphp/, но это не ясно.Как я могу сохранить загруженные изображения в AWS S3 на PHP
Это строка кода мне нужно редактировать в мой контроллер:
thisFu['original_img']='/uploads/fufu/'.$_POST['cat'].'/original_'.uniqid('fu_').'.jpg';
Мне нужно подключить к Amazon S3 и быть в состоянии изменить код так:
$thisFu['original_img']='my_s3_bucket/uploads/fufu/'.$_POST['cat'].'/original_'.uniqid('fu_').'.jpg';
Я уже настроил пользователя IAM для этой цели, но я не знаю всех шагов, необходимых для выполнения задания.
Как подключить и взаимодействовать с Amazon S3 для загрузки и получения общедоступных изображений?
UPDATE
Я решил попробовать использовать s3fs как это было предложено, чтобы я установил его, как описано here (моя ОС Ubuntu 14,04)
я бегу из консоли:
sudo apt-get install build-essential git libfuse-dev libcurl4-openssl-dev libxml2-dev mime-support automake libtool
sudo apt-get install pkg-config libssl-dev
git clone https://github.com/s3fs-fuse/s3fs-fuse
cd s3fs-fuse/
./autogen.sh
./configure --prefix=/usr --with-openssl
make
sudo make install
Все было правильно установлено, но что дальше? Где я должен объявлять учетные данные и как я могу использовать эту интеграцию в моем проекте?
второй ОБНОВЛЕНИЕ
Я создал файл с именем .passwd-s3fs
с одной строки кода с моей IAM полномочий accessKeyId:secretAccessKey
.
я поместить его в мой каталог home/ubuntu
и дать ему 600 разрешения с chmod 600 ~/.passwd-s3fs
Далее из консоли я бег /usr/bin/s3fs My_S3bucket /uploads/fufu
/uploads/fufu
Внутри есть все мое ведро папки в настоящее время. Однако, когда я пытаюсь эту команду:
s3fs -o nonempty allow_other My_S3bucket /uploads/fufu
Я получаю сообщение об ошибке:
s3fs: unable to access MOUNTPOINT My_S3bucket : No such file or directory
3rd UPDATE
Как предложил мне запустить этот fusermount -u /uploads/fufu
, после этого я проверил папку FUFU и как и ожидалось. После этого я попробовал еще раз эту команду (с еще одним -о):
s3fs -o nonempty -o allow_other My_S3bucket /uploads/fufu
и получил сообщение об ошибке:
fusermount: failed to open /etc/fuse.conf: Permission denied
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Любые другие предложения?
четвёртой UPDATE 18/04/15
Под предложением от консоли я бег sudo usermod -a -G fuse ubuntu
и sudo vim /etc/fuse.conf
где я раскомментировал mount_max = 1000 и user_allow_other
Чем я бег s3fs -o непустого -o allow_other My_S3bucket/uploads/fufu
На первый взгляд нет ошибок, поэтому я думал, что все отлично, но все наоборот.
Я немного расстроен сейчас, потому что я не знаю, что случилось, но моя папка /uploads/fufu
скрыт и с помощью ls -Al
я вижу только этот
d????????? ? ? ? ? ? fufu
Я не могу sudo rm -r
или -rf
или mv -r
он говорит, что /uploads/fufu is a directory
Я пытался использовать reboot exit and mount -a
, но ничего.
Я попытался отключить с помощью fusermount
и сообщение об ошибке fusermount: entry for /uploads/fufu not found in /etc/mtab
Но я попытался Судо VIM/и т.д./mtab и я нашел эту строку: s3fs /uploads/fufu fuse.s3fs rw,nosuid,nodev,allow_other 0 0
Может кто-нибудь сказать мне, как я могу отмонтируется и, наконец, удалить эту папку /uploads/fufu
?
спасибо за предложение ... Мне нравится использовать php sdk, но не знаю, как это сделать, вы говорите, что мне не нужно включать фабричный метод для объявления моих учетных данных IAM? Возможно ли сделать переменную для URL-кода bucket и использовать ее как: 'my_s3_bucket = 'http: // link/to/my/s3', а затем' $ thisFu [' original_img '] =' my_s3_bucket/uploads/fufu/'. $ _ POST [' cat '].'/Original _ '. Uniqid (' fu _ ').'. Jpg '; '? – NineCattoRules
Извините за задержку, но я не получаю уведомление о новом обновлении. Ничего себе, спасибо за ваше замечательное и подробное объяснение, это кажется таким легким ... Вместо этого дней назад я попробовал с s3fs, и теперь моя папка загрузки скрыта и недоступна (вы можете прочитать мое 4-е обновление выше). Я хочу попробовать этот метод, но пока у меня не возникнет проблема с моей папкой загрузки, я даже не могу попробовать. – NineCattoRules
Я думаю, что если я просто сделаю редактирование сообщения, тогда уведомление не появится ... Я был рад, что информация была полезной для вас :) о вашей проблеме при обновлении 4: Я немного потерял, что именно ваша проблема? Отключить s3fs? Почему вы не можете просто перейти в исходную папку и сделать: «sudo make uninstall»? Кстати, я вижу, что вы упомянули о некоторых проблемах с разрешениями, вы делали команды от root или sudo? –