使用 mediawiki api 上传文件需要哪些权限?
Posted
技术标签:
【中文标题】使用 mediawiki api 上传文件需要哪些权限?【英文标题】:Which permissions are needed to upload files with mediawiki api? 【发布时间】:2021-12-09 05:36:35 【问题描述】:我正在使用 mediawiki api 上传文件。我正在向
发送一个多部分 POST 请求https://commons.wikimedia.org/w/api.php?format=json&action=upload&filename=xxx
在标题中我包含我的Autherzation: Bearer accessToken123
,在正文中我包含我的 CSRF 令牌以及我的多部分文件,所有这些都按照文档。
但是,我从服务器得到的响应如下:
"error":
"code": "permissiondenied",
"info": "The action you have requested is limited to users in one of the groups: *, [[Commons:Users|Users]].",
"*": "See https://commons.wikimedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
,
"servedby": "mw1448"
这本身就很容易解释,但是当我检查我的权利/组时
https://commons.wikimedia.org/w/rest.php/oauth2/resource/profile
我得到以下信息:
"sub":xxxx,"username":"xxxxx","editcount":7,"confirmed_email":true,"blocked":false,"registered":"xxxx",
"groups":["*","user","autoconfirmed"],
"rights":["read","writeapi","viewmyprivateinfo","abusefilter-view","abusefilter-log","upload","upload_by_url","reupload-own","purge","reupload","autoconfirmed","editsemiprotected","skipcaptcha","abusefilter-log-detail","transcode-reset"],
"grants":["basic","uploadfile","uploadeditmovefile","privateinfo"],"realname":"","email":"xxxx"
如您所见,我既是必需组的一员,也拥有必要的upload
权利。错误信息很清楚,所以我不知道我错过了什么。它不是 CSRF 令牌或访问令牌,提供这些错误结果会导致不同的错误消息。任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:好吧,我终于想通了:当从 mediawiki 请求应用程序密钥时,您可以选择应用程序代表用户拥有的权限。如果你想上传图片到wikimedia commons,你不仅需要`
与媒体互动:上传新文件;上传、替换和移动 文件
对,也是
创建、编辑和移动页面
正确,因为您每次上传都会创建一个新页面。我希望这对将来的其他人有所帮助:`)
【讨论】:
以上是关于使用 mediawiki api 上传文件需要哪些权限?的主要内容,如果未能解决你的问题,请参考以下文章
MediaWiki 1.22.3中的文件上传错误 - 无法创建目录“mwstore:// local-backend / local-public / 7/70”