Загрузите большой файл с внешнего сервера с помощью Google AppEngine с переполнением стека

Я экспериментирую с Google AppEngine и пытаюсь загрузить файл с внешнего сервера на мой локальный компьютер с помощью простого скрипта загрузки в php, размещенного на AppEngine.

Пример кода приведен ниже:

header('Content-Type: "' . $mime . '"');
header('Content-Disposition: attachment; filename="' . $name . '"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Content-Length: '.$size);
header('Pragma: no-cache');
}

readfile($url);

Это работает нормально для небольшого размера файла. Но это не удается для больших файлов из-за 60-секундного ограничения времени выполнения GAE. Есть ли обходной путь для решения этой задачи?

1

Решение

я не могу добавить комментарий

откуда вы читаете файл, если он из Google Cloud Storage, то вы можете настроить свой контейнер как статический веб-сайт. прочитайте больше : https://cloud.google.com/storage/docs/website-configuration

и используйте ручное масштабирование

Запросы могут выполняться бесконечно. Масштабируемый вручную экземпляр может обрабатывать / _ah / запускать и выполнять программу или сценарий в течение многих часов без возврата кода ответа HTTP.

прочитайте больше :: о scaling_types в Google

Вы можете сохранить файл Google Cloud Storage, а затем получить доступ.

если я неправильно понимаю, извините, я также пытаюсь изучить Google AppEngine (php) с прошлого месяца: p еще один noob

1

Другие решения

Если файл хранится в GCS, вы можете подать файл напрямую без ограничения 60 с. Увидеть https://cloud.google.com/appengine/docs/php/googlestorage/public_access#serving_files_directly_from_google_cloud_storage Больше подробностей.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector