Как вы уже заметили, API S3 плохо работают с GAE.Для хранения файлов в GAE вы можете использовать BigTable, Blobstore или Google Storage, поэтому выберите вариант, который наилучшим образом соответствует вашим потребностям.Есть хорошая статья, описывающая их все с примерами кода здесь
Вы можете сохранить имя файла и местоположение большого двоичного объекта в большой таблице.После того, как вы сохранили свои данные в GAE, вы можете создать специальный сервлет, который будет принимать имя файла, найти соответствующую информацию в bigtable, извлечь ее, например, из blobstore и вернуть ее пользователю (просто идея).