Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

836
Visualizações
PUT upload file to AWS S3 presigned url Retrofit2 Android

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.

service call :

@Headers("Content-Type: video/mp4")
    @PUT
    fun uploadTaskAWS(@Url awsUrl: String, @Body filePart: RequestBody): Call<ResponseBody>

upload:

            val file = File(task.file_path)
            val requestFile = RequestBody.create(MediaType.parse("video/mp4"), file)
            val response = awsTaskUploadService.uploadTaskAWS(task.upload_url, requestFile)

I have ensured the URL is correct. The content type header is added too, postman screenshot attached. Getting 403 Forbidden Error

screenshot of postman

I have found this related question however i'm still getting a 403. Upload a file to AWS S3 pre-signed URL using Retrofit2

Any suggestions?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

solution was to include multipart and expect Single response not Call :

  @Multipart
    @PUT
    fun uploadAsset(
        @Header(CONTENT_TYPE) contentType: String,
        @Url uploadUrl: String,
        @Part file: MultipartBody.Part
    ): Single<ResponseBody>

where contentType is passed in

val requestFile = RequestBody.create(MediaType.parse(contentType), file)
val body = MultipartBody.Part.createFormData(mediaType, task.file_name, requestFile)
assetService.uploadAsset(contentType, task.upload_url, body)
over 4 years ago · Santiago Trujillo Relatório

0

403 error means the server knows who you are but do not have the authority to perform the desired action.

If the pre-signed URL is correctly generated, you should be able to upload without any authentication.

You can check if postman is by default adding any AWS Authentication to request

Also you need to explicitly set the protocol version while signing requests if uploading to a region that uses only version 4.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda