• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

760
Views
PUT subir archivo a AWS S3 URL prefirmada Retrofit2 Android

Tengo una URL de carga prefirmada de AWS S3 para cargar un archivo de video. Probando en Postman el video se subió con éxito. Sin embargo, recibo un 403 devuelto cuando lo implemento en la actualización. No puedo usar la carga de varias partes para esta tarea.

llamada de servicio :

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

subir:

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

Me he asegurado de que la URL sea correcta. El encabezado del tipo de contenido también se agrega, se adjunta una captura de pantalla del cartero. Obtener el error prohibido 403

captura de pantalla del cartero

Encontré esta pregunta relacionada, sin embargo, sigo recibiendo un 403. Cargue un archivo en la URL prefirmada de AWS S3 usando Retrofit2

¿Alguna sugerencia?

over 3 years ago · Santiago Trujillo
2 answers
Answer question

0

La solución fue incluir varias partes y esperar una respuesta única, no una llamada:

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

donde se pasa contentType

 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 3 years ago · Santiago Trujillo Report

0

El error 403 significa que el servidor sabe quién es usted pero no tiene la autoridad para realizar la acción deseada.

Si la URL prefirmada se genera correctamente, debería poder cargar sin ninguna autenticación.

Puede verificar si el cartero está agregando de forma predeterminada cualquier autenticación de AWS para solicitar

También debe configurar explícitamente la versión del protocolo al firmar las solicitudes si carga en una región que usa solo la versión 4.

over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Show me some job opportunities
There's an error!