Thank Oliver for explaining what this is all about. I was under the mistaken impression it was the other way around. Indeed, there is a go implementation of the xroot client, though I don't think it's a complete implementationbut likely sufficient for rclone use cases. I certainly am willing to advise the rclone team should they be interested in this. Andy On Wed, 10 Aug 2022, Oliver Freyermuth wrote: > Hi Andy, > > maybe my last mail was a bit misleading about what rclone really is (since I > did not provide any summary): > In fact, it's rather an open source client tool which tries to support many > storage backends, > especially also proprietary cloud things such as Dropbox, Google Drive, > OneDrive, Yandex etc. but also S3, WebDAV and various flavours of it > (ownCloud, nextCloud etc.). > > The special things it offers on top of upload / download is that it can also > mount (FUSE), copy between such configured "backends" (by streaming) and put > layers on top > (e.g. provide a local mount, and encrypt all data locally before uploading > encrypted chunks to things by public cloud providers). > To make things more confusing when trying to define what rclone is, it can > also serve local or remote data via some protocols (WebDAV etc.), i.e. > "re-export" data. > > So in a sense, it's like gfal with mounting capabilities, serving > capabilities, and support of much more protocols (and many messy protocols > requiring loads of quirks). > It's quite helpful to avoid proprietary closed-source clients in case you > can't avoid a commercial cloud provider for some reason. > > > In combination with XrdHttp, it proves quite useful to obtain a FUSE mount if > that is wanted. > > So what Lincoln was asking for was an implementation inside rclone to support > the XRootD protocol, such that it could be used as an XRootD client ? but I > think this this question is better asked to the rclone developers, > since the XRootD team provides full protocol documentation. > Since rclone is in Go, it would of course be easiest to have an existing > implementation of the XRootD protocol in Go, but as Lincoln already found > that seems to exist in go-hep/exp[0] developed by Sebastian Binet, > which can likely be leveraged by the rclone devs. So maybe opening an issue > in their GitHub project and linking that might be a good first step to gather > feedback from the rclone devs? > > > Thinking a bit more about the use case of syncing from A to B: I'm not sure > rclone is the correct tool for this. I did not find any information about it > being capable of triggering Third-Party-Copy transfers, > i.e. server-to-server copies (only for some special cases like "Google Drive > to Google Drive"), so unless I am mistaken, copies will always be streamed > through the client unless the "backend" implemented in rclone implements this > explicitly. > So in case you want good throughput, you may want to rather look at using > xrdcp, or gfal, or put an FTS / WebFTS in front. > > Cheers and HTH, > Oliver > > > [0] https://github.com/go-hep/exp > > Am 10.08.22 um 20:09 schrieb Andrew Hanushevsky: >> Hi Lincoln, >> >> OK, since I don't know much about rclone, it would appear that rclone has >> it's own request/response line protocol and there are such things as rclone >> servers. So, what Oliver is talking about is using a "backend" feature that >> uses webdav instad of the native rclone protocol. If so, the answer is yes >> it is possible in exactly the same way we added http/webdav protocol >> support to xrootd. The only requirement (and it's not that strict) is that >> rclone protocol have a differentiating "handshake" that would allow the >> xroot framework to direct connections too an rclone plugin. Then the plugin >> would handle the rclone protocol and do whatever it needs to do. >> >> Andy >> >> On Wed, 10 Aug 2022, Lincoln Bryant wrote: >> >>> Hi Oliver, >>> >>> This is very interesting! Great to hear that someone has gone through some >>> of the pain of figuring this out already :) Thanks for the link to the >>> issue, I will try to pile on. >>> >>> In any case, I would still be interested to know how feasible it would be >>> to add XRootD protocol support to rclone. >>> >>> Cheers, >>> Lincoln >>> >>> ________________________________ >>> From: Oliver Freyermuth >>> Sent: Wednesday, August 10, 2022 12:47 PM >>> To: [log in to unmask] >>> Cc: Lincoln Bryant >>> Subject: Re: rclone support? >>> >>> Hi Lincoln, >>> >>> while it's not directly what you are asking for, I did some experiments >>> with rclone and XRootD using XrdHttp, which may be of interest here. >>> >>> Access works fine in general (mounting, copying etc.) using the generic >>> "WebDAV" backend, but rclone breaks when a redirector is used: >>> https://github.com/rclone/rclone/issues/6029 >>> >>> One change was required in XrdHttp[0] such that the redirect HTTP code >>> better matches the expectation of rclone and other tools (specs are nasty >>> here), but rclone sadly still fails. However, the remaining issue (IMHO) >>> is on the rclone end, >>> since it just gives up when redirected in many cases, completely ignoring >>> the redirect. Sadly, the rclone devs have been silent on my question which >>> kind of solution they would prefer. >>> If you are interested in this functionality, feel free to join in on the >>> issue linked above. >>> >>> However, the short news is: rclone works fine when used with an XRootD >>> XrdHttp DTN directly via rclone's WebDAV backend, so if that is sufficient >>> for your use case, it's something you can use "now" ;-). >>> >>> Cheers and HTH, >>> Oliver >>> >>> [0] https://github.com/xrootd/xrootd/issues/1638 >>> >>> PS: In case somebody wonders why rclone works with dCache WebDAV (even in >>> distributed setups): >>> If I understand the code correctly, dCache proxies all traffic through >>> the "redirector" in case such a client arrives, instead of redirecting to >>> the corresponding transfer node, >>> likely to workaround such client bugs. Of course, this approach comes >>> with some limitations on its own, so in my opinion, it would be preferable >>> to fix such clients. >>> >>> Am 10.08.22 um 19:16 schrieb Lincoln Bryant: >>>> Hi XRootD list, >>>> >>>> This is a little out there.. but I was wondering if it would be possible >>>> to add XRootD protocol support to Rclone? https://rclone.org/ >>>> <https://rclone.org/> >>>> >>>> The use case for me would be to sync a large volume of data from point A >>>> to point B, without a dedicated data management tool like Rucio. >>>> >>>> I see that there's an XRootD package as part of Go-Hep ( >>>> https://pkg.go.dev/go-hep.org/x/hep/xrootd >>>> <https://pkg.go.dev/go-hep.org/x/hep/xrootd> ), but I don't know how well >>>> maintained, supported, etc it is. >>>> >>>> Cheers, >>>> Lincoln >>>> >>>> >>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- >>>> -- >> --- >>>> >>>> Use REPLY-ALL to reply to list >>>> >>>> To unsubscribe from the XROOTD-L list, click the following link: >>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1 >>>> <https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1> >>>> >>> >>> >>> -- >>> Oliver Freyermuth >>> Universität Bonn >>> Physikalisches Institut, Raum 1.047 >>> Nußallee 12 >>> 53115 Bonn >>> -- >>> Tel.: +49 228 73 2367 >>> Fax: +49 228 73 7869 >>> -- >>> >>> ######################################################################## >>> Use REPLY-ALL to reply to list >>> >>> To unsubscribe from the XROOTD-L list, click the following link: >>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1 >>> > > > -- > Oliver Freyermuth > Universität Bonn > Physikalisches Institut, Raum 1.047 > Nußallee 12 > 53115 Bonn > -- > Tel.: +49 228 73 2367 > Fax: +49 228 73 7869 > -- > ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-L list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1