Серверная часть хранилища файлов для Rails

У меня есть приложение Rails, в которое я хочу добавить загрузку файлов, чтобы пользователи имели доступ к разделу «ресурсы», где они могут загружать и делиться (хотя и не публично) файлами любого типа. Я знаю, что мог бы создать решение, используя, например, скрепку и S3, но чтобы попытаться избежать накладных расходов на администрирование всего, что я смотрю на интерфейсы API для drop.io и box.net. У кого-нибудь есть опыт? У меня есть базовая демонстрация, довольно хорошо работающая с drop.io, но мне просто интересно, есть ли у кого-нибудь лучшие идеи или опыт.

Большое спасибо Д


person Dave Hollingworth    schedule 16.04.2010    source источник
comment
Вы смотрели на attachment_fu (github.com/technoweenie/attachment_fu)? Это делает использование S3 довольно безболезненным.   -  person Rob Di Marco    schedule 16.04.2010
comment
Не могли бы вы уточнить, каких «административных накладных расходов» вы надеетесь избежать с помощью скрепки и S3? По моему опыту, использование обоих из них в тандеме было невероятно безболезненным (без дополнительных затрат на администрирование).   -  person jerhinesmith    schedule 16.04.2010
comment
Я не смотрел на attachment_fu нет, я посмотрю. Причина, по которой я думаю, что есть административные накладные расходы, заключается в том, что единственный проект, над которым я работал, где они использовали S3, был там, где не использовался плагин, и, казалось, было много манипуляций с сегментами и так далее, и все это казалось слишком сложным. Я попробую это с одним из вышеупомянутых драгоценных камней и посмотрю, как это пойдет. Большое спасибо за ваши комментарии!   -  person Dave Hollingworth    schedule 17.04.2010


Ответы (1)


Я использую attachment_fu с серверной частью S3. Для улучшения пользовательского интерфейса я использую загрузчик файлов YUI.

Некоторые файлы загружаются с доступом для чтения во всем мире, другие — без общего доступа для чтения. Я использую Attachement_fu для создания самозаверяющих URL-адресов, чтобы клиенты могли получать доступ к частным файлам S3.

Я написал несколько небольших вспомогательных процедур для библиотеки S3 для повторного подключения после тайм-аута, обработки различных ошибок, которые может вызвать библиотека S3, и т. д.

Создание собственной библиотеки для drop.io и/или box.net

Ваша идея использовать API для коммерческого сервиса интересна, но я не столкнулся с какими-либо проблемами с приведенной выше конфигурацией. А цена прямого доступа к S3 очень низкая.

Если вы решите пойти по этому пути, вы можете открыть исходный код своего кода. Вы получите пользу от тестирования, идей и возможного кода от сообщества.

Обратите внимание: если у вас много загрузок, вы можете столкнуться с проблемой производительности, если закачки синхронны с потоком Rails — процесс rails занят загрузкой и не может ничего делать, пока загрузка выполнена.

ХТХ,

Ларри

person Larry K    schedule 16.04.2010
comment
Привет, загрузчик YUI звучит интересно, я не знал об этом (я использую YUI довольно часто, поэтому не должно быть слишком сложно заставить его работать) - я попробую. Интересна проблема с производительностью - теоретически это не должно быть проблемой, потому что загрузка будет только один раз. Я буду иметь это в виду, хотя. Большое спасибо за ваш пост! - person Dave Hollingworth; 17.04.2010