Home | News | Documentation | Download

Openning a bunch of files placed at HTTP remote with RDataFrame

I tried to do the following:

ROOT::RDataFrame("AnalysisTree", "https://user:password@tweb.address.com/myData/*RawData*.root");

But I get the following problem

Error in <TDavixSystem::DavixOpendir>: failed to opendir the directory: HTTP 405 : Method Not Allowed, Permission refused  (17)

I can access normally those files one by one at the remote location using TFile::Open. Why I couldn’t do the same with RDataFrame?

Hi @Javier_Galan,

  1. I guess if you pass the filenames as a list that works right? E.g.:
ROOT::RDataFrame("AnalysisTree", {"https://user:password@tweb.address.com/myData/RawData1.root, https://user:password@tweb.address.com/myData/RawData2.root"});
  1. Using a glob instead (i.e. using *RawData* rather than a list), can you open those files with TChain?

Cheers,
Enrico

Hi Enrico,

Yes, passing them as a list it works.

No, I cannot, I do the following (where I replaced the real address by dummy values:

root [9] TChain ch("AnalysisTree");
root [10] ch.Add("https://user:password@web.address.com/R01602*RawData*.root");
Error in <TDavixSystem::DavixOpendir>: failed to opendir the directory: HTTP 405 : Method Not Allowed, Permission refused  (17)

Thanks!
Javier

Alright, that’s the problem then, RDF is just forwarding what you pass to TChain, and TChain is not dealing with it correctly. A (not so handy, admittedly) workaround is to build the list yourself and pass the files as a list.

I don’t know whether TChain could do better and enumerate all files matching the glob even if they are hidden behind authentication, but feel free to open an issue at https://github.com/root-project/root/issues !

Cheers,
Enrico

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.