Как максимально быстро на PHP скопировать файл?

Как максимально быстро (и без лишней нагрузки) на PHP скопировать файл с сдругого сервера? точнее какой функцией. Обычно пользовался чем придется, а сейчас на проекте каждая миллисекунда дорога. Copy или file_put_contents или есть другие варианты?
  • Вопрос задан
  • 491 просмотр
Пригласить эксперта
Ответы на вопрос 4
@Starche
Python/JS/PHP Tech Lead
file_put_contents($file, fopen($url, 'r'));
Идея в том, что fopen создаёт поток, и этот поток передаётся в file_put_contents. Соответственно этот поток не считывается в память весь, а буферизуется и сбрасывается на диск по мере вычитывания. См. https://php.net/file_put_contents
Если data является потоковым ресурсом (stream), оставшийся буфер этого потока будет скопирован в указанный файл.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Через exec запустите что-то внешнее, типа curl или rsync, пусть они этим занимаются.
Еесли другой сервер доступен не только по http, то еще можно посмотреть в сторону сетевых ФС, может и копировать ничего не придется.
Ответ написан
Комментировать
@grinat
Через exec, на php вообще не будет нагрузки.
Ответ написан
Комментировать
@nrgian
на PHP скопировать файл с сдругого сервера?

Основная потеря времени идет на сети и на том другом сервер (если он медленный) - и от вас и вашего PHP тут ничего не зависит.

Если хочется разгрузить ваш скрипт, то просто назначать фоновые задания, которые будет выполнятся по cron или т.п. В этом случае ваш скрипт "заказавший" файл будет вообще не нагружен.

В противном случае - тормозить будет, но не не зависящим от вас причинам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 10:43
1500 руб./за проект
26 апр. 2024, в 10:21
1200 руб./в час