3 ms·
All of the cloud drives solve this issue. If you just want something simple for personal use, I'd look into the iOS Shortcuts app. Shortcuts can send files tha
by andor 7y ago
All of the cloud drives solve this issue.
If you just want something simple for personal use, I'd look into the iOS Shortcuts app. Shortcuts can send files that were shared to it via HTTP or SSH (as STDIN to a shell command), and it can store files on your phone. You could use QR codes to exchange URIs, IP addresses or file paths.
For example, to send from Linux to iOS:
- Linux machine serves file over HTTP, displays a QR code with the URL
- You scan QR code and download the file
For iOS -> Linux:
- Linux machine displays QR code with its IP address
- On your phone, you share the file with a shortcut
- The shortcut scans the QR code, then connects to the machine via SSH.
It runs an application on your Linux machine (e.g. cat > /tmp/file-from-ios)
and passes the file in as input.
- afarrell 7y agoWhy can’t there just be one simple solution for this which is peer-to-peer? Why does it have to depend on the cloud? Because in order to be simple, any solution requires the skilled time and attention of an engineer to create an abstraction layer over the fiddly details. And to update that as the device takes updates. If you do it as a peer-to-peer tool, that effort is O(N^2). Adding Each new platform requires ensuring that it works with N other platforms you already support. If you introduce some intermediary like a cloud server, then the problem is O(N). When you add a new platform, just make sure it works to talk between the server and that 1 type of client. But why does the intermediary have to be a whole server? Why can’t it be a protocol or format? <% insert explanation from someone more knowledgeable about filesystems %>
- andor 7y agoWhy can’t there just be one simple solution for this which is peer-to-peer? Why does it have to depend on the cloud? Peer to peer solutions are more difficult to build because there are more problems to solve: * Peers need to be in the same network (same Wifi, Internet, etc.). If they are not, a connection needs to be established in some way. * Peers need to know how to reach each other. How can they exchange addresses? * Network/OS needs to allow exchanging messages (NAT, firewalls, proxies, ...). If they can't, then what? All of these are complicated and have lots of error cases. Cloud-based solutions make some assumptions to simplify the problem space: peers have a working internet connection, they can use DNS to look up addresses, and can reach a centralized server, usually via HTTP. It's even better if they are browser based, then peers don't need to install a new client. As Bluetooth and Airdrop show, things don't always need to be cloud based. But also, as Bluetooth shows, it's really difficult to make it work seamless.
- dTal 7y agoYou can script this workflow quite easily on Linux using basic command line tools like python -m http.server, qrencode, and display. I'm surprised it's not a standard desktop tool with a GUI at this point. For Android, there's Share Via HTTP: https://f-droid.org/en/packages/com.MarcosDiez.shareviahttp/ https://f-droid.org/en/packages/com.MarcosDiez.shareviahttp/