В настоящее время моя методология загрузки вложений сообщений через Graph API такова:
- Получить список сообщений для аутентифицированного пользователя.
- Для каждого идентификатора сообщения получите списоквложения, связанные с этим.Верните только имя и идентификатор.
- Для каждого идентификатора вложения получите все его данные.Это означает, что поля, такие как contentBytes и contentLocation, также возвращаются.
- Учитывая строку base 64 в contentBytes, превратить ее в файл.
Из тестирования я обнаружил, чтовремя, необходимое для получения запроса API на шаге 3, является моим узким местом.Это связано с большим объемом данных, возвращаемых в поле contentBytes.Я назову это «загрузка».
Файл размером 2 МБ может занять до 10 секунд для загрузки при хорошем соединении.Когда я ограничен скоростью загрузки 5 Мбит / с, это может занять более минуты для извлечения.
Поэтому у меня есть две мысли, которые я хотел бы изучить:
- contentLocation всегда нулевой,Насколько я понимаю, эти файловые вложения должны иметь здесь URI для загрузки из.Кто-нибудь знает, почему мне не предоставляется contentLocation?
- Если я должен придерживаться работы с contentBytes, наверняка есть объяснение, почему загрузка происходит так медленно?Что я могу сделать, чтобы улучшить его?