I am getting 401 unauthorized error when i try upload to confluence using the below curl command
Asked by Ravichandra:

curl -D- -u "ravichandra.k02:$PASSWORD" -X POST -H "X-Atlassian-Token: nocheck" -F "file=C:\\Users\\ravichandra.k02\\Documents\\AG_SprintTesting_ExitReport_3.8.1_Release updated.docx" -F "minorEdit=false" -F "comment=This is my File" "<https://infosysconfluence.ad.infosys.com/rest/api/content/189693999/child/attachment>"

Response:100 1560 100 1116 100 444 558 222 0:00:02 0:00:02 --:--:-- 697\<!doctype html\>\<html lang="en"\>\<head\>\<title\>HTTP Status 401 -- Unauthorized\</title\>\<style type="text/css"\>h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}\</style\>\</head\>\<body\>\<h1\>HTTP Status 401 -- Unauthorized\</h1\>\<hr class="line" /\>\<p\>\<b\>Type\</b\> Status Report\</p\>\<p\>\<b\>Message\</b\> Basic Authentication Failure - Reason : AUTHENTICATED_FAILED\</p\>\<p\>\<b\>Description\</b\> The request has not been applied because it lacks valid authentication credentials for the target resource.\</p\>\<hr class="line" /\>\<h3\>Apache Tomcat/9.0.22\</h3\>\</body\>\</html\>


Answers:
author: Moses Thomas
body: [@Ravichandra](/t5/user/viewprofilepage/user-id/3808887) It is clear, the error you are receiving, it says you credentials is not Valid.

I would verify this user: make sure that you are using the correct username and password. Also ensure that USER exist in Confluence and has the right permission to add attachment.

As space administrators, **space tools \> permissions** check that this Confluence user has the **Add** permission under **Attachments** , and **View** permission. If this page is restricted also ensure that the user is added also to view permission under **Restrictions**

**My code is in Linux**
>
> ```
> #!/bin/bashATTACHMENT_ID="XXXX"ATTACHMENTS_PATH=/home/user/ttt.txt  
> #this should be the same name attachment on confluence page if the attachment existsATTACHMENT_URL="CONFLUENCE_URL/rest/api/content/{CONTENT_ID}/child/attachment/"curl   -k -u  user:password  -X POST -H "X-Atlassian-Token: no-check" -F "minorEdit=true" -F "file=@$ATTACHMENTS_PATH"  $ATTACHMENT_URL$ATTACHMENT_ID/data
> ```

Now from your Code you are missing /{ATTACHMENT_ID}/data

1. To get the ATTACHMENT id which you already have on you page, please go to attachments on the page click on the attachment you will find the attachment Id towards the end of the URL
2. To get the CONTENT_ID, just go to attachments you will find the id on the Url.
3. user is confluence user and password is user password.

I have uploaded file successfully without issues.

Kind regards,

MO


Tags: confluence-server

server