alvinn8 / ftp-client Goto Github PK
View Code? Open in Web Editor NEWA web-based ftp client
License: MIT License
A web-based ftp client
License: MIT License
I don't think monaco editor is very well adapted for mobile
The Monaco editor is not supported in mobile browsers or mobile web frameworks.
Add a dropdown to choose between editors like monaco editor, ace and codemirror. On mobile a mobile-friendly one will be selected by default.
Instead of using CD commands, cache everything and use absolute paths all the time. This saves us some CD commands, making the ftp-client faster. This also allows simple operations like list and download during a large task, because the large task will no longer modify the working directory. Also means we can remove the getConnection stuff.
Relates to #12
Requires #10
And fix the code so it works
For large files (above 10 MB maybe?), instead of downloading the entire file to a memory stream and encoding that as base64, add an entry to a list and create an endpoint on the HTTP server and pipe the output from the FTP server to the response of that HTTP endpoint with the request we get there. For the WebSocket, reply something saying that it's a big request, the URL to send to, and a file download id. On the WebSocket, we can then send progress updates on how much of the file has been downloaded. This can be used for a progress indicator on the client.
Add a dark mode theme to the client. Just check what the system default is set to and then use that.
Allow changing directory while downloading a folder, uploading a folder, etc.
When the contents of a folder is uploaded, maybe show a preview of the absolute paths of the files that are about to be uploaded, because the user maybe intended to make a folder and put the contents in there.
Make it update faster, as right now it caches. Maybe use a proper build tool like vite instead of the custom made scripts
Should make stuff quicker, and if you for example check the size of a folder, you will then be able to traverse it instantly as it's all cached. Currently, the downloading, getting size, etc. just do it manually, and manually send cd commands to the connection. This also has the risk of desyncing.
Possibly also abstract the selection system so that we can re-use it for other stuff, like the nbt editor?
Avoids sending concurrent requests. This means we can remove the "A task is running right now".
Have two priorities: QUICK=2 and LARGE_TASK=1. Quick ones happen first, and then large ones. This allows for #12.
Requires #13, otherwise the workdir would be too unpredictable to run requests during large tasks.
Highlight errors and stacktraces, colors using both legacy section signs and ansi escape codes (�[0;33;1m[
or something like that)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.