Jeg vil foreslå, at du uploader direkte til en tjeneste som Amazon S3 og derefter behandler filen, som du finder passende i et baggrundsjob.
Når brugeren uploader filen, kan du være sikker på, at den bliver sikkert gemt i S3. Du kan bruge en privat spand til at forbyde offentlig adgang. Derefter kan du i din baggrundsopgave behandle uploaden ved at sende filens S3 URI og lade din baggrundsarbejder downloade filen.
Jeg ved ikke, hvad din baggrundsarbejder gør med filen, men det siger sig selv, at det måske ikke er nødvendigt at downloade den igen. Det er trods alt gemt et sted.
Jeg har brugt carrierwave-direct-perlen tidligere med succes. Siden du nævner Heroku, har de en detaljeret vejledning til at uploade filer direkte til S3.