Discourse API のアップロード

私の環境では、以下のコードが機能しました:

r = requests.post(f'{rooturl}/uploads.json',
                  files = {'files[]': (file, open(file, 'rb'), 'image/png')},
                  data={'type':'image'},
                  headers={
                      "Api-Username" : sys.argv[1],
                      "Api-Key" : sys.argv[2],
                  })

おそらく、content-type': 'multipart/form-data' は省略すべきでしょう。そうすれば、requests ライブラリが適切な設定を自動で判断してくれます。