Atlassian Confluence:更新附件的父容器

时间:2017-04-07 21:45:12

标签: confluence confluence-rest-api

我想使用Cloud REST API和“curl”命令将附件移动到不同的空间(即,在Confluence页面中更新附件的父容器)。我查找了REST API端点URL,发现了这个:

PUT /rest/api/content/{id}/child/attachment/{attachmentId}

有人能为正确构造的JSON输入提供一个示例吗?我尝试了下面的一个将名为“test.jpeg”的附件移动到ID为“att000”且当前版本5移动到ID为1234的父级,但它失败了:

curl -v -u 'admin:password' -X PUT -H 'Content-Type:application/json' -d '{"id":"att000","type":"attachment","title":"test.jpeg","version":{"number":5,"minorEdit":false},"ancestors":[{"id":1234}]' -H ‘X-Atlassian-Token:access-token' https://test.atlassian.net/wiki/rest/api/content/170234/child/attachment | python -m json.tool

以下是错误消息

< HTTP/1.1 415 Unsupported Media Type
.
.
.
No JSON object could be decoded

感谢您的时间!

2 个答案:

答案 0 :(得分:0)

我相信您在curl示例中将其上传到空间中是不可能的。 Confluence中的附件需要包含在内容中。看一下下面的例子:

curl -v -S -u admin:admin -X POST -H "X-Atlassian-Token: no-check" -F "file=@myfile.txt" -F "comment=this is my file" "http://localhost:8080/confluence/rest/api/content/3604482/child/attachment" | python -mjson.tool

答案 1 :(得分:0)

您必须在请求对象中设置container属性。

指定"container":{"id":"123456","type":"attachment"}

curl -v -u 'admin:password' -X PUT -H 'Content-Type:application/json' -d '{"id":"att000","type":"attachment","title":"test.jpeg","version":{"number":5,"minorEdit":false},"container":{"id":"123456","type":"attachment"}, "ancestors":[{"id":1234}]' -H ‘X-Atlassian-Token:access-token' https://test.atlassian.net/wiki/rest/api/content/170234/child/attachment | python -m json.tool

id =&gt;正在移动附件的页面的ID。