9

我正在尝试按照远程 API 文档中给出的指南将 .xls 文件上传到 Confluence wiki 页面: https ://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-示例#ConfluenceRESTAPIExamples-Upload anattachment

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

这就是我正在做的事情:

curl -v -S -u username:password -X POST -H "X-Atlassian-Token: nocheck" -F "file=@/path/to/local/excelsheet.xls" https://<Confluence server>/display/page

我省略了 Python -mjson.tool,因为它说“没有 JSON 对象可以被解码”,这没有意义,因为我没有发布 JSON。

但是上面的 curl 命令对我不起作用。我在控制台上看到目标页面的 html,但文件没有上传。我尝试以多种方式修改 curl 命令,但没有任何效果。

同样对于我尝试上传到的页面的 URL,它没有文档中建议的任何 contentID。目标 URL 是一个接受附件并显示上传文件列表的页面。

有人可以指出我哪里出错了吗?我对Curl没有太多经验。

4

4 回答 4

4

除了标题“ X-Atlassian-Token ”值之外, David Vonka的回答是正确的。它必须是“ no-check ”(而不是“ nocheck ”)

所以更正的命令是:

curl -v -S -X POST -H "X-Atlassian-Token: no-check" -F "file_0=@<file name>" -F "comment_0=<upload comment>" "http://<server>:<port>/<context>/pages/doattachfile.action?pageId=<page id>&os_username=<username>&os_password=<password>"

注意用您的值替换所有 <...> 占位符

于 2014-04-15T12:00:03.473 回答
3

您需要在 url: 中使用 REST API:.../confluence/rest/api/content/$PAGE_ID/child/attachment现在您正在使用查看页面的 url。

于 2014-03-21T06:40:45.643 回答
1

我不认为 confluence rest api 允许文件上传。请改为这样做

curl -v -S -X POST -H "X-Atlassian-Token: nocheck" -F "file_0=@<file name>" -F "comment_0=<upload comment>" "http://<server>:<port>/<context>/pages/doattachfile.action?pageId=<page id>&os_username=<username>&os_password=<password>"

用您的值替换所有 <...> 占位符

于 2014-03-22T13:42:07.730 回答
0

API POST 语法应从“ https://ConfluenceServer/display/page ”更正为正确的 res/api/content 语法,例如:“ https://companyName.atlassian.net/display/rest/api/content/pageIDxxxxx “:

 curl -v -S  -X POST -H "X-Atlassian-Token: no-check" -F "file_0=@<file name>" -F "comment_0=<upload comment>" https://<companyName>.atlassian.net/display/rest/api/content/<pageID15398762>/child/attachment

pageID 可以在 URL 显示页面中找到。例如: https ://companyName.atlassian.net/display/spaces/DEV/pages/pageID15398762/Page+Title+Name

有关更多 API 语法详细信息,请参阅此文档:
https ://docs.atlassian.com/atlassian-confluence/REST/6.6.0/#content-createContent

于 2019-10-17T06:29:02.597 回答