title: PUT upload file to AWS S3 presigned url Retrofit2 Android
body: <p>I have a pre-signed upload URL from AWS S3 to upload a video file to. Testing on Postman the video is successfully uploaded. However i get a 403 returned when implementing in retrofit. I cannot use multipart upload for this task.</p>
  
  <p>service call :</p>
  
  <pre><code>@Headers("Content-Type: video/mp4")
      @PUT
      fun uploadTaskAWS(@Url awsUrl: String, @Body filePart: RequestBody): Call&lt;ResponseBody&gt;
  </code></pre>
  
  <p>upload:</p>
  
  <pre><code>            val file = File(task.file_path)
              val requestFile = RequestBody.create(MediaType.parse("video/mp4"), file)
              val response = awsTaskUploadService.uploadTaskAWS(task.upload_url, requestFile)
  </code></pre>
  
  <p>I have ensured the URL is correct. The content type header is added too, postman screenshot attached. Getting 403 Forbidden Error</p>
  
  <p><a href="https://i.stack.imgur.com/3BSKK.png" rel="nofollow noreferrer">screenshot of postman</a></p>
  
  <p>I have found this related question however i'm still getting a 403. <a href="https://stackoverflow.com/questions/45991720/upload-a-file-to-aws-s3-pre-signed-url-using-retrofit2">Upload a file to AWS S3 pre-signed URL using Retrofit2</a></p>
  
  <p>Any suggestions?</p>