Вам захочется взглянуть на API Blobstore
http://code.google.com/appengine/docs/java/blobstore/
Позволяет загружать файлы размером до 50 МБ и обслуживать их напрямую, без использования BigTable. Что я делаю, так это то, что у меня есть скрипт, который принимает файл, создает URL-адрес для загрузки из магазина, затем отправляет полученный файл на этот URL-адрес и сохраняет запись в bigtable. 30-секундный лимит времени применяется только ко времени обработки, поэтому процесс загрузки файла не учитывается.