Эффективный способ загрузки защищенных файлов в Symfony - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть проект Symfony, который позволяет мобильному приложению получать статьи с изображениями через API.API защищен и возвращает список статей.Одной из деталей статьи является фотография, хранящаяся вне Document Root, так что она не доступна из веб-браузера.Photo uri - это ссылка на контроллер Symfony, который проверяет, может ли вошедший в систему пользователь загрузить файл.Если да, используйте заголовки для возврата изображения.

API выглядит следующим образом:

[
    {
        "id": 7,
        "title": "Test",
        "photo": "https://mypage.com/user/files/ewr23r23",
        "version: 2,
        "status": "n"
    },  
    {
        "id": 9,
        "title": "Foo",
        "photo": "https://mypage.com/user/files/h24t54ef",
        "version: 4,
        "status": "m"
    }
]

Таким образом, мобильное приложение запрашивает статьи через API (1 запрос).Затем он загружает фотографии.Так что, если у нас есть 10 статей, у нас есть 11 запросов.10 для фотографий и 1 для API.Знаете ли вы какое-нибудь решение, которое бы оптимизировало это?Чтобы было меньше запросов?Мы используем управление версиями, поэтому мобильное приложение загружается только через API, а не весь список статей.

1 Ответ

0 голосов
/ 26 апреля 2018

Поскольку ваш API сделан доступным для мобильного приложения, вы можете использовать расширение PHP ZIP (документация здесь ), чтобы объединить все ваши изображения в один Zip-файл, который вы затем загружаете и распаковываете с помощьюклиентское приложение

На мой взгляд, лучший способ сделать это - реализовать контроллер, который будет принимать в качестве аргумента список изображений и возвращать zip-файл.Вероятно, мы можем кэшировать эти файлы (как на стороне клиента, так и на стороне сервера), чтобы сэкономить немного вычислительной мощности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...