if you cant mount directly as the source is coming from somewhere where this cannot be achieved and you think you need to use puppet to fetch these files to the client then as suggested in the comments you would need to find a way of running an exec based on an event. I would suggest that you find away if puppet can quickly check the contents of the top level directoy of the source via some sha1 checksum (like git does for the tree) and if the checksum (1 source file) that you can check does not match then you run Exec resource with an rsync to mirror the source.
The checksum can be generated at the far side when the source files change, as i dont know what your trying to do this is my suggestion.
Sync the source to the client based on a single file that is managed by puppet. = rsync over http is not supported but you can use zsync