Code en Python sous Linux pour télécharger un fichier qui se trouve sur un serveur Nextcloud

Testé sous Linux Mint – Version de Python :

python3 --version
Python 3.12.3

Vérifier si la librairie requests est installée :

dpkg -l python3-requests
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom Version Architecture Description
+++-================-======================-============-===================================================================
ii python3-requests 2.31.0+dfsg-1ubuntu1.1 all elegant and simple HTTP library for Python3, built for human beings

Exemple de code en Python pour télécharger un fichier se trouvant sur un serveur Nextcloud.

#!/usr/bin/env python3.12
# -- coding: utf-8 --

import requests
from requests.auth import HTTPBasicAuth

# Remplacez ces valeurs par les vôtres
nextcloud_url = "https://votre-serveur-nextcloud.com"
username = "votre_utilisateur"
password = "votre_mot_de_passe" # ou utilisez un token d'application
remote_file_path = "/chemin/vers/le/fichier/sur/nextcloud/fichier.txt"
local_file_path = "/chemin/local/vers/fichier.txt"

# Construction de l'URL pour télécharger le fichier
download_url = f"{nextcloud_url}/remote.php/dav/files/{username}{remote_file_path}"

# Téléchargement du fichier
response = requests.get(
download_url,
auth=HTTPBasicAuth(username, password),
verify=True # Désactivez si vous utilisez un certificat auto-signé
)

# Vérification de la réponse
if response.status_code == 200:
with open(local_file_path, 'wb') as f:
f.write(response.content)
print(f"Fichier téléchargé avec succès : {local_file_path}")
else:
print(f"Erreur lors du téléchargement : {response.status_code} - {response.text}")

Dans mon cas le dossier Documentation_Dominique est visible dans mon interface Nextcloud, le paramètre remote_file_path est de ce type « /Documentation_Dominique/dossier/fichier.txt »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut