0
Answered

Какие лимиты на загрузку файлов через API?

sumkin.senya 1 year ago in API • updated by Vladimir Mullagaliyev (co-founder) 11 months ago 9

Планируем сделать загрузку логов/screenshot-ов к тикету. Интересуют лимиты:

- максимальный размер одного файла

- общий лимит хранилища

- rate limits (частота обращения к API)

- как долго хранятся файлы


А также:

- можно ли добавить мета-данные к файлу (указать тикет, например)?

- можно ли удалить файл через API?


Answer

Answer
Answered

Здравствуйте,

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

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

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

- общий лимит хранилища - не ограничен жестко, но мониторится и может быть лимитирован вручную или тарифом.

- rate limits = 5 в секунду

- как долго хранятся файлы = не онраничено, пока проект оплачен и файл ИСПОЛЬЗУЕТСЯ в каком-то топике (есть ссылка на файл в одном из топиков).

- можно ли добавить мета-данные к файлу (указать тикет, например)? - Если указать линк на файл в топике или коммента, файл привязывается к нему. Отдельно метаданные не передаются.

- можно ли удалить файл через API? - нет, периодически происходит чистка файлов, которые не связаны с объектами (например, топик удален). Теоретически можно добавить.

GOOD, I'M SATISFIED

Всё ок.

Satisfaction mark by sumkin.senya 1 year ago
Answer
Answered

Здравствуйте,

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

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

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

- общий лимит хранилища - не ограничен жестко, но мониторится и может быть лимитирован вручную или тарифом.

- rate limits = 5 в секунду

- как долго хранятся файлы = не онраничено, пока проект оплачен и файл ИСПОЛЬЗУЕТСЯ в каком-то топике (есть ссылка на файл в одном из топиков).

- можно ли добавить мета-данные к файлу (указать тикет, например)? - Если указать линк на файл в топике или коммента, файл привязывается к нему. Отдельно метаданные не передаются.

- можно ли удалить файл через API? - нет, периодически происходит чистка файлов, которые не связаны с объектами (например, топик удален). Теоретически можно добавить.

Что насчет максимального размера одного файла?

На текущий момент 20MB.

> - rate limits = 5 в секунду

Как именно считаются эти 5 rps?


У нас установлены виджеты на 3-x сайтах и еще в 2-x местах используется API. Как не нарваться на блокировку?

Здравствуйте,

Лимиты у нас выставлены достаточно высокие. Рассчитаны на лимитирование атак. Если лимитирование срабатывает на реальныз клиентах мы пересмотрим схему. Пока такого нет.

Текущая настройка для сайтов: На каждый IP по 5 в секунду. Если больше, то до 20 будет отдавать (не блокировать), но с задержкой по 5 в секунду. После начнет блокировать. 

Для API отдельные настройки и они еще более щедящие. Т.е. Вам не очем переживать.

На создание одного тикета в Helpdesk уходит до 7 API запросов:

- создание/получение пользователя

- загрузка от 0 до 4 файлов

- создание тикета

- обновление тикета


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

Под какие цифры его подгонять: 20 RPS или выше?

API лимиты 20 в секунду.

Настраивайте 20 в секунду, проблем не будет. На самом вы не учитываете время ответа, т.к. запросы идут последоветельно. т.е. эти 7 запросов не пройдут в секунду, они распределятся, скажем, на 3 секунды. Так что не переживайте по этому поводу.

Да, так и есть - на 7 запросов уходит примерно 1-2 секунды. Обработку очереди сообщений могут выполнять параллельно 3-4 обработчика (worker-a). В результате получим те самые 7x3=21 запрос в 1-2 секунды.


И еще один вопрос:

20 RPS на каждый ресурс или всего 20 запросов к вашему API?

20 на один IP. Реально API обработает даже больше, 100 запросов в секунду, но будет обрабатывать их 5 секунд. Т.е. в пик до 100.

Поставьте 20, не ошибетесь.