Использование Amazon S3 php REST API против монтирования корзины S3 на сервер (s3fs) - PullRequest
3 голосов
/ 28 апреля 2011

Я буду запускать приложение в самом ближайшем будущем, которое, отчасти, потребует от пользователей загрузки файлов (изображений) для просмотра другими участниками. Мне нравится идея S3, поскольку она относительно дешевая и масштабируется автоматически.

Моя проблема в том, как пользователи будут загружать свои изображения на S3. Кажется, есть несколько вариантов.

1 - использовать php REST API. Единственная проблема заключается в том, что я не могу заставить его работать для загрузки разномасштабных версий (т.е. миниатюр) одного и того же изображения одновременно и загрузки их непосредственно в s3 (таким образом, это работает только для одного изображения за раз). В целом, это кажется менее гибким.

http://net.tutsplus.com/tutorials/php/how-to-use-amazon-s3-php-to-dynamically-store-and-manage-files-with-ease/

2- Другой вариант - установить ведро S3 с s3fs. Затем просто программно перенесите мои изображения в корзину, как я это сделал бы с NFS. Из того, что я прочитал, кажется, что некоторые люди сомневаются в надежности монтажа S3. Это правда?

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=fuse+over+amazon

Какой метод будет лучше для максимальной надежности и скорости?

Будет ли EBS что-то рассмотреть? Я действительно хотел бы иметь выделенную коробку, а не использовать экземпляр EC2, хотя ...

1 Ответ

1 голос
/ 03 ноября 2011

В вашем случае я рекомендую использовать S3 API напрямую, а не s3fs из-за производительности. Помните, что s3fs - это просто еще один уровень поверх API S3, и использование этого API не всегда является лучшим для вашего приложения.

Чтобы справиться с созданием миниатюр, я рекомендую отделить его от основного процесса загрузки с помощью Amazon Simple Queue Service. Таким образом, ваши пользователи получат ответ, как только файл будет загружен, не дожидаясь его обработки, что приведет к сокращению времени ответа.

Что касается использования EBS, это другой сценарий. EBS - это просто постоянное хранилище для экземпляра Amazon EC2, и его надежность не сравнится с S3.

Также важно помнить, что S3 предлагает только «возможную согласованность», в отличие от физического жесткого диска на вашем компьютере или экземпляра EBS на EC2, поэтому вам нужно кодировать свое приложение для правильной обработки.

...