https://github.com/universaldatatool/localfileproxy
Proxy local files to the web programatically.
https://github.com/universaldatatool/localfileproxy
Last synced: 20 days ago
JSON representation
Proxy local files to the web programatically.
- Host: GitHub
- URL: https://github.com/universaldatatool/localfileproxy
- Owner: UniversalDataTool
- Created: 2020-05-03T04:03:35.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T14:46:59.000Z (over 3 years ago)
- Last Synced: 2024-10-29T18:40:15.875Z (over 1 year ago)
- Language: JavaScript
- Size: 735 KB
- Stars: 0
- Watchers: 3
- Forks: 2
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# localfileproxy
Proxy local files to an online url.
Very useful in web services that uses files on a user's computer but don't want
to require the user to upload anything.
- supports many clients
- simple api for programmatic usage
- supports client machines that don't have exposed ports (e.g. a laptop)
## Web Server, Client Service, Browser Client
It can be a bit confusing to follow how this works because there are multiple
clients involved. Here are the three roles:
- **web server (Broker)**: AKA the localfileproxy server, this is a server on the
internet that has an exposed port
- **client service (Service)**: The client application that has access to the files
- **browser client (Requester)**: This is a service that has URLs to the web server, but
because it's a browser (or a different computer than the local client) it
can't access the files directly. It will request the files from the web server.
## Technical Details
All of this is facilitated via a ZeroMQ Majordomo-like pattern. Roughly, this is
what happens...
1. Start the Broker (the localfileproxy server on a Web Server)
2. Client Service (Service) registers itself itself with the Web Server (Broker),
establishing a socket connection
3. Browser Client (Requester) makes request to Web Server (Broker)
4. Web Server (Broker) sends a request to the Client Service (Service) over the socket
5. Client Service (Service) answers the socket request with data from a file
6. Web Server (Broker) receives data from Client Service (Service), and passes it to the Browser
Client (Requester)
The Broker uses a ZeroMQ Router. The Service uses a ZeroMQ Dealer.