Есть ли у нас список неподдерживаемых символов для имен файлов BLOB-объектов Azure?

Я загружаю в BLOB-файлы несколько специальных символов. Это не загружается. Я обнаружил, что есть некоторые ограничения по именованию файлов лазури. Поэтому мне нужен список неподдерживаемых символов Юникода для имен файлов BLOB-объектов или способа узнать, поддерживается ли символ в имени файла BLOB-объекта Azure или нет.

Я упомянул ниже документ об этом. Они не предоставили какой-либо конкретный список или способ найти его. https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata

Мне нужна точная проверка правильности имени файла, происходящего на блейд-файле загрузки на Azure BLOB-объекте

3 ответа

Я не думаю, что Microsoft Docs очень точно определены.

Имя большого двоичного объекта должно соответствовать следующим правилам именования:

  • Имя большого двоичного объекта может содержать любую комбинацию символов.
  • Имя большого двоичного объекта должно состоять не менее чем из одного символа и не может превышать 1024 символа для больших двоичных объектов в хранилище Azure.
  • Имена BLOB-объектов чувствительны к регистру.
  • Зарезервированные символы URL должны быть правильно экранированы.
  • Количество сегментов пути, составляющих имя большого двоичного объекта, не может превышать 254. Сегмент пути - это строка между последовательными символами-разделителями (например, косая черта '/'), которая соответствует имени виртуального каталога.

В своих тестах я обнаружил, что у вас не может быть этих символов в имени Azure Blob.

  • Управляющие символы 0x00-0x1F
  • Удалить 0x7F
  • Обратная косая черта '\' - Azure преобразует ее в косую черту '/'.
  • Имена, оканчивающиеся точкой '.'

Я использовал пакет SDK для Azure Blob go для выполнения этих тестов, поэтому, возможно, некоторые из этих ограничений связаны с этим.

Вот правильный документ: https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata

Имя BLOB-объекта должно соответствовать следующим правилам именования:

  • Имя BLOB-объекта может содержать любую комбинацию символов.

  • Имя большого двоичного объекта должно быть длиной не менее одного символа и не более 1024 символов для больших двоичных объектов в хранилище Azure.

    Эмулятор хранилища Azure поддерживает имена BLOB-объектов длиной до 256 символов. Дополнительные сведения см. В разделе Использование эмулятора хранилища Azure для разработки и тестирования.

  • Имена BLOB-объектов чувствительны к регистру.

  • Зарезервированные символы URL должны быть правильно экранированы.

  • Число сегментов пути, составляющих имя большого двоичного объекта, не может превышать 254. Сегмент пути - это строка между последовательными символами разделителя (например, косая черта '/'), которая соответствует имени виртуального каталога.

Примечание. Избегайте имен BLOB-объектов, заканчивающихся точкой (.), Косой чертой (/) или последовательностью или комбинацией этих двух.

Служба BLOB-объектов основана на плоской схеме хранения, а не на иерархической схеме. Однако вы можете указать символ или строковый разделитель в имени BLOB-объекта для создания виртуальной иерархии. Например, следующий список показывает действительные и уникальные имена BLOB-объектов. Обратите внимание, что строка может быть допустимой как в качестве имени большого двоичного объекта, так и в качестве имени виртуального каталога в одном и том же контейнере:

  • / а

  • /a.txt

  • / А / б

  • /a/b.txt

Вы можете воспользоваться символом-разделителем при перечислении BLOB-объектов.

Примечание. Документ, упомянутый в вашем вопросе, предназначен для хранилища файлов Azure, а не для хранилища BLOB-объектов Azure, поэтому он не является правильным.

Другие вопросы по тегам