30-секундное ограничение применяется ко времени выполнения вашего кода, и ваш код не начинает выполняться до тех пор, пока не будет получен весь пользовательский запрос - поэтому время, которое пользователь тратит на загрузку файла, не имеет значения.
Тем не менее, использование blobstore звучит как лучшая идея. Вы можете использовать BlobReader , который эмулирует файл с доступом к хранилищу BLOB-объектов, для обработки блоба, как для любого другого файла, и чтения его с помощью стандартных библиотек (таких как BeautifulSoup). Если XML-файл достаточно велик, вы рискуете исчерпать память, поэтому вы можете вместо этого рассмотреть подход на основе SAX, который не требует хранения всего файла в памяти.
Что касается сроков выполнения для обработки файла, вы почти наверняка захотите сделать это в очереди задач, где ограничения составляют 10 минут, и вы не будете заставлять пользователей ждать.