Есть ли у нас список неподдерживаемых символов для имен файлов BLOB-объектов Azure?
Я загружаю в BLOB-файлы несколько специальных символов. Это не загружается. Я обнаружил, что есть некоторые ограничения по именованию файлов лазури. Поэтому мне нужен список неподдерживаемых символов Юникода для имен файлов BLOB-объектов или способа узнать, поддерживается ли символ в имени файла BLOB-объекта Azure или нет.
Я упомянул ниже документ об этом. Они не предоставили какой-либо конкретный список или способ найти его. https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata
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, поэтому он не является правильным.
Символы, не рекомендуемые в именах больших двоичных объектов, четко перечислены здесь:https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#unicode- символы-не рекомендуется для использования в именах-контейнеров или больших двоичных объектов