Что такое форма нормализации Юникода для блоков AWS S3

При работе с именами файлов в формате UTF-8 на AWS s3 bucket, я обнаружил, что некоторые из указанных имен файлов( в ссылке на файл на S3 bucket) могут отличаться от тех же имен файлов, которые были процитированы кодом моего приложения python ( i’M using Boto library). Как я обнаружил, они отличаются из-за различных форм нормализации unicode, и проблема уходит после использования unicodedata.нормализовать .

Однако я не нашел никакой информации о форме нормализации, которая используется AWS (NFC,NFKC, NFDили NFKD), Поэтому я буду очень признателен за любое предложение trasted source, который предоставляет эту информацию, спасибо.

1 ответ

  1. Похоже, что S3 не применяет никакой нормализации. Если я загружаю (с помощью веб-консоли S3) файл с именем unicode (например, Ärende.txt) в S3 с Mac и снова из Windows, я закончу с двумя файлами в S3. Они выглядят одинаково в консоли S3, но они считаются различными S3, потому что кодировка имени различна.

    Вы должны будете точно рассмотреть, как это влияет на ваше приложение (пользователей) и настроить соответствующим образом. Например, если ваши пользователи могут переключаться между средами (Mac vs Windows vs Linux) и ожидать согласованного кроссплатформенного поведения, то, похоже, вам придется нормализовать имена самостоятельно. Если ваши пользователи работают с одной платформы последовательно, то вам не нужно будет заботиться, скорее всего.