cern-fts / davix

High-performance file management over WebDAV / HTTP
GNU Lesser General Public License v2.1
83 stars 34 forks source link

Recursively deleting directories with davix-rm not working #67

Open ffornari90 opened 3 years ago

ffornari90 commented 3 years ago

Hi, I'm trying to recursively delete a directory with davix-rm (as reported here https://www.systutorials.com/docs/linux/man/1-davix-rm/) but it does not seem to work. This is the directory:

_davix-ls -l --capath /etc/grid-security/certificates/ -H "Authorization: Bearer ${BEARERTOKEN}" davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12 -rwxrwxrwx 0 9442 2021-05-19 09:24:14 certs.p12 -rwxrwxrwx 0 494 2021-05-19 09:24:37 oidc-agent-stat.sh

And this is what I see when I try to delete it:

_davix-rm --capath /etc/grid-security/certificates/ -H "Authorization: Bearer ${BEARERTOKEN}" davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12/ (Davix::rm) Error: HTTP 412 : Server Error with url davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12/

Anyways, gfal-rm -r seems to work on the same directory:

gfal-rm -r davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12 2>/dev/null davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12/certs.p12 DELETED davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12/oidc-agent-stat.sh DELETED davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12 RMDIR

davix-ls -l --capath /etc/grid-security/certificates/ -H "Authorization: Bearer $AT" davs://xfer-archive.cr.cnaf.infn.it:8443/jlab12/fornariclas12 (Davix::HttpRequest) Error: HTTP 404 : File not found

Is it possible to make davix-rm behave the same way as gfal-rm -r with respect to directories? For your information, these are the versions involved:

gfal-rm --version gfal2-util version 1.5.3 (gfal2 2.18.1) dcap-2.18.1 file-2.18.1 gridftp-2.18.1 http-2.18.1 lfc-2.18.1 rfio-2.18.1 sftp-2.18.1 srm-2.18.1 xrootd-2.18.1

davix-rm --version Version: 0.7.5

Thanks for your attention.

mpatrascoiu commented 3 years ago

Hello,

This request comes up from time to time (e.g.: DMC-1197).

Davix implements delete traversal only for S3 protocol. WebDav supports delete on collections so a single DELETE <directory-path> request should work.