» » Uploadcare решает все проблемы по загрузке файлов

Uploadcare решает все проблемы по загрузке файлов

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

Uploadcare — сервис для приложений и сайтов, упрощающий получение файлов от пользователей, их хранение и передачу по сети.

Есть сервис решает такие проблемы как:
— сохранение формы с файлом по ajax;
— отображение формы с уже выбранным файлом;
— если вы ожидаете картинку, нужно убедиться, что загружена картинка;
— принятие сервером большого тела запроса;
— опасность загруженного файла в некоторых фреймворках;
— удобная загрузка нескольких файлов реализуется;
— индикация процесса загрузки;
— ограниченное место на диске сервера;

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

Идентификатор можно сохранить по ajax. С помощью виджета пользователь может загрузить несколько файлов из разных источников (URL, Google Drive, Dropbox, Facebook, Vkontakte, Instagram, Evernote и т.д). На Uploadcare неожиданно не заканчивается место, а его увеличение не связано с такими проблемами, как переразбиение диска и остановка сервера.

Загруженные пользователями файлы привязываются к аккаунту не сразу. Они видны через api, но другого способа обратиться к ним нет. Только после того, как сервер подтвердит с помощью секретного ключа и специального метода api, что файл действительно нужен, он станет публичным. Обычно это происходит после «валидации» формы с остальными данными пользователя. Соответственно, можно не волноваться, что какой-то пользователь или даже злоумышленник сможет закачать то, что вам не нужно. Для вызова методов api можно использовать уже готовые библиотеки, которые есть для большинства популярных языков и фреймворков. Впрочем, если приложение не предполагает наличие сервера, есть способ изменить это поведение: можно включить настройку в аккаунте и в виджете, позволяющую сохранять файлы без секретного ключа.

Но принять файл — это полбеды. После этого их нужно еще и раздавать. Для этого нужен широкий канал. Картинки нужно пережимать в другом разрешении, а то и в нескольких. Еще неплохо, чтобы этим занимался отдельный сервер, потому что раздача больших файлов забивает кеши операционной системы.

Именно для этого в Uploadcare есть умный CDN. Как любой нормальный CDN, он может просто отдавать файлы по их идентификатору. А может применять к ним разные операции. Для картинок это: изменение размеров, обрезание, приведение к другому формату, поворот и другие. Вы описываете в url, какую картинку хотите получить, а CDN её отдает. Те пользователи, которые не хотят использовать CDN теперь могут копировать загруженный файл с CDN в свой storage (на данный момент только в S3 bucket-ы).

Помимо доступности файла через CDN Uploadcare, пользователи могут файлы у себя, через функцию бэкапа (backup) засторенных файлов в пользовательском S3 бакете (bucket) и Selectel контейнере.

Конечно, до Uploadcare были готовые решения, например, для ресайза картинок. Или различные библиотеки, позволяющие сохранять файлы на «безграничном» S3. Но настраивать их все равно достаточно утомительно, и они не решали всех проблем. И мало кто доходил до реализации таких удобств, как загрузка файлов из социальных сетей и облачных сервисов, или до возможности пользователю самому вырезать подходящую часть изображения во время загрузки файла. С Uploadcare вы получаете это автоматически.

У проекта есть целых два api (если не считать CDN), которые вы можете использовать напрямую, если у вас специфические требования: api загрузки файлов, доступное по публичному ключу, и rest api, доступное по секретному. Это позволяет использовать Uploadcare не только в вебе, где загрузка файлов привычное дело, но и на мобильных устройствах и десктопных приложениях. Кстати, для iOS уже есть готовые библиотеки.

Об архитектуре Uploadcare можно написать отдельную статью. Но если вкратце, сервера работают в амазоновском облаке и легко масштабируются горизонтально. За разные функции отвечают разные узлы. Если даже упадет база и главный сайт, CDN продолжит раздавать файлы и ресайзить картинки. За доставку контента отвечает CloudFlare. Файлы пользователей хранятся на S3, и есть возможность подключить собственное хранилище S3 для своего аккаунта, что может оказаться выгодным, если вы предполагаете хранить файлы большого размера.

Вся документация по сервису есть здесь.

Uploadcare – отлично подойдет всем проектам, которым необходимо получать






Добавить комментарий

КОММЕНТАРИИ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Быстрый вход: 

ВОЗМОЖНО ВАС ЭТО ЗАИНТЕРЕСУЕТ

  • SafeMonk позволяет удобно зашифровать данные в Dropbox
    Если вы фанатичный пользователь Dropbox, в котором у вас хранятся ценные данные, передаваемые по Сети, то попробуйте использовать комплекс SafeMonk для шифрования данных. Кроме шифрования вы сможете
  • FileCloud.me - сервис синхронизации социальных сетей!
    Многие из нас присутствуют в более чем одной социальной сети. Наличие нескольких несвязанных между собой аккаунтов порождает проблему синхронизации контента между ними. Например, вы сделали альбом
  • Как создать анкету онлайн?
    Для создания анкет в сети существует сегодня огромное количество способов - от простейших конструкторов коротких опросов в социальных сетях и на форумах до сложнейших анкет, созданных при помощи
  • Microsoft внедрила ряд улучшений в сервис SkyDrive
    Корпорация Microsoft внесла ряд улучшений в работу своего облачного сервиса хранения данных SkyDrive. Одним из таких нововведений является поддержка дисплеев с высоким разрешением. Теперь сервис
  • Почему тормозит YouTube
    Пользователи Youtube часто жалуются на медленную работу сервиса. В часы пик буферизация видеороликов зачастую останавливается где-то между 25% и 60% — и дальше не идет. Причина вовсе не в
Информация
Комментировать статьи на сайте возможно только в течении 90 дней со дня публикации.