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

318
Visualizações
Acceso a archivos de nombre de archivo de caracteres Unicode multibyte de S3 mediante TypeScript (JavaScript) desde el navegador

Estoy actualizando una aplicación web de Angular para reproducir archivos de audio en idiomas hablados recuperados de un depósito de AWS S3. Muchos de los archivos en el depósito S3 tienen (tendrán) nombres de archivo Unicode multibyte (porque la aplicación admitirá usuarios globales). AWS (S3) está codificando el nombre del archivo de una manera que no puedo replicar fácilmente en el navegador. Una función Lambda de back-end de la aplicación envía el nombre del archivo de audio para recuperar y la aplicación Angular luego crea una instancia de HTMLAudioElement que envía una solicitud HTTP GET a S3.

A. Nombre de archivo como en Windows (antes de cargarlo en S3):
Godzilla [Blue Öyster Cult] instrumental #12.wav

B. Nombre de archivo ingerido con la consola S3:
Godzilla %5BBlue %C3%96yster Cult%5D instrumental %2312.wav

C. Nombre de archivo como se muestra en la consola S3:
Godzilla+%5BBlue+%C3%96yster+Cult%5D+instrumental+%2312.wav

D. Nombre de archivo devuelto por el backend de la aplicación Lambda:
Godzilla [Blue Öyster Cult] introduction #12.wav

E. El nombre de archivo audio.load() navegador HTTP GET:
Godzilla+[Blue+O%CC%88yster+Cult]+introduction+%2312.wav

Nota: D & E (arriba) se determinaron utilizando la herramienta de desarrollo de red del navegador

El archivo se cargó a S3 a través de la consola S3 desde Windows. El nombre de archivo que se guarda en la base de datos RDS backend coincide con el nombre de archivo de Windows. Debido a que Lambda está recuperando el nombre de archivo de la base de datos RDS, Lambda está devolviendo el nombre de archivo de Windows a la interfaz de usuario angular en el navegador. El navegador audio.load() está convirtiendo el multibyte Ö incorrectamente para acceder al archivo en S3 (navegador: O%CC%88yster (UTF-8 COMBINING DIAERESIS) vs. S3: %C3%96yster ). Parece que el navegador se centra en convertir el acento en lugar de un carácter multibyte como parece haber hecho S3.

No tengo permitido eliminar los caracteres multibyte en favor de un conjunto de caracteres ASCII. Estoy buscando una manera (sin asignaciones de codificación manual para cada posible conversión de caracteres multibyte) (e idealmente sin una nueva dependencia) para "convencer" al navegador para que se comporte de la misma manera que lo hace S3 ... Supongo que la pregunta se reduce a "¿Cuál es la lógica de S3 para convertir caracteres multibyte en nombres de archivos?" ¿Alguien puede ofrecer un enfoque para lograr esto?

Nota: La aplicación Angular ya tiene lógica para manejar correctamente los típicos casos de caracteres especiales de S3. Esta pregunta solo se centra en conjuntos de caracteres internacionales.

about 4 years ago · Juan Pablo Isaza
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