Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

312
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!