Cargué un archivo .flac en un depósito de Amazon S3, pero cuando intento transcribir el audio con el SDK de Golang de Amazon Transcribe, aparece el siguiente error. Intenté hacer público el archivo .flac en el depósito S3 pero sigo teniendo el mismo error, así que no creo que sea un problema de permisos. ¿Hay algo que impida que el servicio Transcribe acceda al archivo del depósito S3 que me falta? El usuario de API que está cargando y transcribiendo tiene acceso total a los servicios S3 y Transcribe.
ejemplo Ir código:
jobInput := transcribe.StartTranscriptionJobInput{ JobExecutionSettings: &transcribe.JobExecutionSettings{ AllowDeferredExecution: aws.Bool(true), DataAccessRoleArn: aws.String("my-arn"), }, LanguageCode: aws.String("en-US"), Media: &transcribe.Media{ MediaFileUri: aws.String("https://s3.us-east-1.amazonaws.com/{MyBucket}/{MyObjectKey}"), }, Settings: &transcribe.Settings{ MaxAlternatives: aws.Int64(2), MaxSpeakerLabels: aws.Int64(2), ShowAlternatives: aws.Bool(true), ShowSpeakerLabels: aws.Bool(true), }, TranscriptionJobName: aws.String("jobName"), }Respuesta de Amazon Transcribe:
BadRequestException: The S3 URI that you provided can't be accessed. Make sure that you have read permission and try your request again.Mi problema era que el archivo de audio que se cargaba en s3 especificaba una ACL. Lo eliminé del código de carga s3 y ya no recibo el error. También según los documentos, si tiene "transcribir" en el nombre de su depósito s3, el servicio de transcripción tendrá permiso para acceder a él. También hice ese cambio, pero aún debe asegurarse de que no está usando una ACL