2017-03-22 3 views
0

Je veux télécharger des fichiers sur mon serveur nextcloud. Le problème est que j'ai eu une erreur. La première commande curl devrait créer le répertoire. Si $MANY_DIRECTORIES contient un seul répertoire, cela fonctionne. Mais si cette variable contient par ex. /root/deep/deeper et deep n'existe pas que je suis arrivé cette erreur:Comment créer des répertoires récursivement dans curl ou WebDav?

<?xml version="1.0" encoding="utf-8"?> 
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> 
    <s:exception>Sabre\DAV\Exception\Conflict</s:exception> 
    <s:message>Parent node does not exist</s:message> 
</d:error> 

La deuxième commande lance cette erreur:

<?xml version="1.0" encoding="utf-8"?> 
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> 
    <s:exception>Sabre\DAV\Exception\NotFound</s:exception> 
    <s:message>File with name //test could not be located</s:message> 
</d:error> 

Alors, comment puis-je créer la récursif de répertoires pour télécharger le fichier?

Merci.

+0

Eh bien, vous les créez un par un. –

+0

@JulianReschke: Merci. Je vais faire une boucle. – cy221

Répondre

0

Il n'y a pas d'option pour créer des répertoires récursifs, donc je diviser la variable en un tableau et créer les répertoires un par un.

IFS='/' read -r -a array <<<"$2" 
for el in "${array[@]}" 
do 
     TEMP=$TEMP/$el 
     curl -u "$USER:$PW" \ 
     -X MKCOL \ 
     "https://MYSERVER/remote.php/dav/files/$USER$TEMP" 
done 

curl -u "$USER:$PW" \ 
     -T "$1" "https://MYSERVER/remote.php/dav/files/$USER/$2/$1"