Chciałbym puścić request do API, które będzie mi zwracało w kawałkach duży plik tekstowy (>50MB). Przy każdym pobraniu kawałka pliku, będę appendować go na serwerze do pliku. Jak najlepiej to zrobić?
Zacząłem to pisać z wykorzystaniem psockopen, żeby nie łączyć się za każdym razem do serwera. Są jednak dwa problemy:
- ile danych zwrócić na raz w API
- w jaki sposób poinformować API, ile danych chcę pobrać
Jak to najlepiej zrobić?
Pierwsza metoda jaką to zrobiłem, to wysłanie w parametrach requesta informacji o tym, które dokładnie bajty przesłać, i zwrócenie tylko tych bajtów w API. Ale problem w tym, ile w takim razie pobierać bajtów fread'em - wszystkie na raz, czy znów je dzielić?
A skoro wszystkie na raz, to czy nie lepiej zwrócić wszystkie bajty w API, i pobierać je freadem po prostu w kawałkach?
A skoro to jest opłacalne, to po co byłby nagłówek RANGE?
Eh, w jaki sposób najlepiej to zrobić?