When you do fly deploy, what happens is that a Docker build will be started on a remote builder: Your current directory gets transferred as the build context and the builder can use that to build the image, as well as download files from the Internet at build time.
So there would be two main ways to ensure a given file is included in the image at build time:
Download it before the build starts, so when you fly deploy and start the build, the large file will be available as part of the local context, and transferred to the remote builder. Then a Dockerfile step like COPY large-file.dat /path/in/image can be used to bake it into the image.
Have the build process download the file. As part of your Dockerfile, possibly in a RUN command, execute something that downloads the large file directly in your image.
You can prototype either approach locally; if a local docker build . results in an image that contains what you need, it will probably “just work” when doing fly deploy.