Managing PDF file viewing in a large, distributed project (perspective)

I currently have a project which is set up as follows:

Master Project > Resides on Ignition Cloud Server. Contains everything necessary for the Edge project.

Master project is essentially the edge project residing on Ignition Cloud. We use the EAM module to push any updates to the edge device running Ignition Edge.

We also have a Cloud version of the project where we use Master Project as a parent and then add Cloud-specific views and features to it. The Cloud Master then serves as a parent project for the individual sites.

Part of the project is a PDF file viewer where one can view mechanical and electrical drawings of the station. I'm using an iFrame object and started by using the WebDev module to get it all working. It works. Then I realized, since i did this on the master project, I can only have one set of PDFs if I'm pushing to all Edge projects. Also, it's annoying having the PDF files be part of the project so every update pushes 40+ mb of extra data that will never change. It's not a lot but we do have these edge devices on cellular connections with limited data.

So I'm pretty sure I need to divorce the PDF files from the Master project itself. There was talk about them residing on a specific hard drive folder on the edge device, but for one, I don't know if it's possible to read data from an Ignition Edge Gateway hard drive and put it in an iFrame in Perspective. It needs a specific URL and the WebDev module and I can't just point it to C:\PDFs\Electrical.pdf or something like that. I know through scripting I can read and write binary data to specific files. I do that with csv files specifically. I haven't done it with PDFs though. I'm okay with always putting the pdfs in a specific folder and naming them a specific name. I just don't know if there's some method to read that binary data and display it in an iFrame. I could use the pdf viewer but the iFrame is so much nicer for PDFs, I'd rather not.

Then there's the other factor of that solution would only work on the edge. If the files resided on the edge device only, the cloud version of the project would have to access them from...somewhere. Remotely from the edge device seems not very secure.

I'm starting to think the best solution would be to have Specific "Edge" projects for each site reside on the cloud server, existing only to hold the PDF files for their specific sites, and transfer updates via EAM. The PDF files in the Web Dev module would reside in those specific projects and they'd be different for each one. Then somehow I'd have to double that work up on the Cloud editions and make sure they have the same PDFs. I'm in this weird situation where I need to fork the project, merge, and then fork it again. The Edge projects are using master as a parent while the cloud projects are using cloud master, which uses master as a parent. By the time I need to add PDF files specific to a project, it's already forked.

Is there some elegant solution for all this or am I in a "pick your poison" situation?

Definitely an interesting problem to have. If you want something clean- maybe use a cloud storage service like dropbox and sync to all of your edge devices and store the directory on disk.
Have web dev access the correct file based on arguments passed into it. This requires some finessing of the folder structure.

Electrical/
Param "electrical__electrical1.pdf" gets converted to "Electrical/Electrical1.pdf"

Get endpoint will perform a system.file.readFileAsBytes which allows the natural reading of the file, then return it in your response.

At least with internet outages, the last valid sync content will be what's returned.