2017-04-03 3 views
0

J'essaie de mettre à jour une page Confluence avec du contenu HTML. J'ai ce contenu HTML dans un autre fichier nommé Output.html au même endroit. Je ne peux pas directement copier & coller ce contenu HTML à ce script, car il s'agit d'une énorme quantité de données, et j'ai également besoin d'exécuter ce script dynamiquement. Impossible de mettre à jour la page de confluence avec le contenu d'un fichier HTML en utilisant curl

curl -u user:pass -X PUT -H 'Content-Type: application/json' -d'{"id":"2196","type":"page","title":"Main page","space":{"key":"AB"},"body":{"storage":{"value":"<p> Text </p>","representation":"storage"}},"version":{"number":2}}' https://Client.atlassian.net/wiki/rest/api/content/2196 | python -mjson.tool 

Par exemple, le contenu de mon fichier HTML est comme suit:

<!DOCTYPE html> <html> <head> <title>Page Title</title> </head> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> </body> </html> 

J'ai besoin que cela soit mis à jour sur ma page Confluence en tant que contenu HTML, qui doit directy extraite du fichier HTML le script "value":"<p> Text </p>"

Lorsque je copie manuellement un exemple de contenu HTML dans cet espace value, la page affiche le contenu HTML.

+0

Qu'est-ce que cela a à voir avec Python? –

+0

Oui, je le sais. Je peux même voir où vous avez redirigé votre JSON vers 'json.tool' de Python. Alors? Je demande à nouveau: Qu'est-ce que cela --- votre question et le problème qu'il décrit --- ont à voir avec Python? –

+0

Salut Kevin, C'est la méthode que j'ai utilisée jusqu'ici pour mettre à jour les pages de confluence de mes serveurs RHEL où Python est installé. Juste pour obtenir la sortie d'une manière bien formatée. C'est tout! Des suggestions sur ma question? Je suis coincé avec ça. – Ashfaq

Répondre

0

J'ai obtenu cette chose a fonctionné en utilisant Python et son module de demande. Voir code ci-dessous,

import json 
import requests 

url = 'https://Client.atlassian.net/wiki/rest/api/content/87440' 
headers = {'Content-Type': "application/json", 'Accept': "application/json"} 
f = open("file.html", "r") 
html = f.read() 
data={} 
data['id'] = "87440" 
data['type']="page" 
data['title']="Data Page" 
data['space']={"key":"AB"} 
data['body'] = {"storage":{"representation":"storage"}} 
data['version']={"number":4} 
print data 
data['body']['storage']['value'] = html 
print data 
res = requests.put(url, json=data, auth=('Username', 'Password')) 

print (res.status_code) 
print (res.raise_for_status()) 

N'hésitez pas à demander si vous avez un doute.