Mam pytanie dotyczące hostingu dużych zasobów generowanych dynamicznie i Heroku.Heroku: Obsługa dużych, dynamicznie generowanych zasobów bez lokalnego systemu plików
Moja aplikacja oferuje pobieranie zbiorcze podzbioru podstawowych danych, które składają się z dużego pliku (> 100 MB) generowanego co 24 godziny. Gdybym był uruchomiony na serwerze, po prostu zapisałbym ten plik do katalogu publicznego.
Ale jak rozumiem, nie jest to możliwe z Heroku. Katalog/tmp może być zapisany w, ale gwarantowany czas życia plików tam seems to be defined pod względem jednego cyklu żądanie-odpowiedź, a nie zadania w tle.
Chciałbym użyć S3 do przechowywania pliku do pobrania. Interfejs S3 gem obsługuje przesyłanie strumieniowe, ale tylko w przypadku plików, które już istnieją w lokalnym systemie plików. Wygląda na to, że rozmiar treści musi być znany z góry, co nie będzie możliwe w moim przypadku.
To wygląda jak połów-22. Próbuję uniknąć tworzenia gigantycznego ciągu w pamięci podczas przesyłania do S3, ale S3 obsługuje tylko przesyłanie strumieniowe plików, które już istnieją w lokalnym systemie plików.
Biorąc pod uwagę aplikację Rails, w której nie mogę pisać do lokalnego systemu plików, w jaki sposób mogę wyświetlać duży plik, który jest generowany codziennie bez tworzenia dużego ciągu w pamięci?
Mam do czynienia z tym samym problemem. Nie poradziłem sobie z tym jeszcze, ale zakładałem, że mogę napisać do systemu plików/tmp na moim narzędziu delayed_job i będzie to trwało wystarczająco długo, aby przesłać plik do S3. Zainteresowany usłyszeć, co ludzie sugerują! –