What is the functionality that you're not seeing re: how to do file downloads over net/rpc?
The thing that pops to my mind as likely important is the ability to stream data, which you indeed cannot do with net/rpc. If you need that I might suggest using a different rpc system that has the expressivity you need. e.g. with grpc you could have a method that returns a stream. Cap'n Proto is capable of capturing this kind of thing as well. Quoting Ricky (2018-11-04 14:22:11) > I am sorry I wasn't very forthcoming in the beginning - to clarify - by > rpc I meant using go net/rpc package. Where I can simply Register > methods/services that can be called remotely as if they were > functions/methods locally available. This lends to a cleaner syntax and > more robust code in general from which I have built very clean > distributed systems in past. > I do not use net/rpc currently - instead I have a worker running a tcp > server which understands handshakes (control flow) and I currently move > files using io copy. All this because I only have access to a single > TCP port on machine where the worker agent is hosted. The worker is a > tcp server that does io.Copy to give file to calling� master. > This flow is a bit crummy in my opinion, there's many chances of errors > being missed perhaps, I have to do timeout handling, acking etc which > net/rpc automatically takes care off plus go rpc package provides many > primitives which I have used in past to just do all of this kind of > control flow Master calling workers to do a work a but if work a fails > or errors out, the system has a cleaner way of tracking and telling me > (via error and replies) - I wanted to use that kind of robust ness. > I suspect this kind of thing cannot be done with via go net/rpc > package... but wanted to ask upfront.... also if I were to use scp, > sftp etc can I leverage this to be done with single port (different > port than usual scp sftp ports) - this port restriction is due to > security and many other reasons ....� > > On Sun, Nov 4, 2018 at 1:09 AM Amnon Baron Cohen <[1]amno...@gmail.com> > wrote: > > And don't forget the bit-torrent class of solutions. > On Friday, 2 November 2018 16:56:17 UTC, Tom Mitchell wrote: > > Moving files is a solved, non trivial problem .... > Have you looked at tools like scp (ssh), rsync, kermit, ftp, sftp, tftp > and network filesystems (nfs and samba)? > Even git and http.� Error recover, host name lookup, compression, > restart, safe abort, transport encryption, authentication, buffering. > [2]https://en.wikipedia.org/wiki/Sorcerer%27s_Apprentice_Syndrome > [3]https://stackoverflow.com/questions/68335/how-to-copy-a-file-to-a-re > mote-server-in-python-using-scp-or-ssh > > On Thu, Nov 1, 2018 at 11:24 PM Tamás Gulácsi <tgula...@gmail.com> > wrote: > > 2018. november 2., péntek 6:21:47 UTC+1 id�pontban Anirudh Vyas a > következ�t �rta: > > Hello there -� > I am looking for example/help for using rpc to do file downloads - I am > not sure if this is possible, or recommended or if there is a > better/cleaner way. I like the robust nature of RPCs and have written a > few good, performant distributed systems in them - was hoping/wondering > if I could use RPC to do downloads - I currently use combination of > io.Copy and a TCP server to do this. > > What kind of RPC ? RPC is just "Remote Procedure Call". > If s `send(data []byte)` won't be enough (size restrictions), you can > copy the io interfaces: > CreateFile(name, perms...) (fileHandle) > WriteFile(fileHandle, chunk) > CloseFile(fileHandle) > > -- > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, > send an email to golang-nuts...@googlegroups.com. > For more options, visit [4]https://groups.google.com/d/optout. > > -- > > � � T o m � � M i t c h e l l > > -- > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, > send an email to [5]golang-nuts+unsubscr...@googlegroups.com. > For more options, visit [6]https://groups.google.com/d/optout. > > -- > > Vyas, Anirudh > Computer Science and Math Autodidact > E-Mail: [7]ricky...@gmail.com > Mobile: � (US): 650-727-2636 > > -- > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [8]golang-nuts+unsubscr...@googlegroups.com. > For more options, visit [9]https://groups.google.com/d/optout. > > Verweise > > 1. mailto:amno...@gmail.com > 2. https://en.wikipedia.org/wiki/Sorcerer%27s_Apprentice_Syndrome > 3. > https://stackoverflow.com/questions/68335/how-to-copy-a-file-to-a-remote-server-in-python-using-scp-or-ssh > 4. https://groups.google.com/d/optout > 5. mailto:golang-nuts+unsubscr...@googlegroups.com > 6. https://groups.google.com/d/optout > 7. mailto:ricky...@gmail.com > 8. mailto:golang-nuts+unsubscr...@googlegroups.com > 9. https://groups.google.com/d/optout -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.