Скрепка поддерживает неограниченное количество вложений.
Посмотрите на S3 POST API , который потребует некоторые параметры подписи, сгенерированные на вашем сервере, но позволит вам загружать непосредственно в S3. После успешной загрузки на S3 вы должны сделать отдельный запрос, чтобы уведомить ваш сервер heroku о наличии нового вложения и имени файла вложения. Обычно для этого требуется взломать параметр [attachment] _file_name, чтобы избежать ненужной загрузки файла скрепкой повторно.
В целом, я обнаружил, что у Paperclip есть некоторые серьезные недостатки в дизайне, что означает, что он требует неудачного взлома, чтобы хорошо играть с файлами, которые не загружаются через плагин. Я должен был в значительной степени взломать вещь полностью. Для моего следующего проекта я буду искать альтернативу, которая более четко отделяет вложения от моделей и имеет более модульный механизм хранения.
Тем не менее, решение, которое я упомянул, прекрасно работает. Сложность состоит в том, чтобы явно установить поле [attachment] _file_name в модели, чтобы Paperclip решал, что файл уже содержит исходный файл.