Так же, как сводка для комментариев и моего дополнительного контента.
Существует официальный документ Naming and Referencing Containers, Blobs, and Metadata
, который описывает, какие символы нельзя использовать в имени контейнера или BLOB-объекта.Чтобы исправить это, обычное решение состоит в том, чтобы кодировать имя или URL-адрес с помощью UTF-8 / URL Encoder.
В Python код такой же, как показано ниже, и устранить проблему для некоторых специальных символов, таких как :
и/
не нужно кодировать функцией urllib.parse.quote
с параметром safe
.
# In Python 3.7
from urllib import parse
url_str = 'https://dapblobstorage.blob.core.windows.net/daps3blob/kuldeep/Depot - Week.xlsx'
url_str_quoted = parse.quote(url_str, safe=':/')
print(url_str_quoted)
# The result is https://dapblobstorage.blob.core.windows.net/daps3blob/kuldeep/Depot%20-%20Week.xlsx
# for En Dash
print(parse.quote('Depot – Week.xlsx'))
# The result is Depot%20%E2%80%93%20Week.xlsx
Примечание: символ тире (-) может использоваться в имени контейнера и большого двоичного объекта,
Каждый знак тире (-) должен начинаться сразу после буквы и цифры;последовательные тире не допускаются в именах контейнеров.
, но символ пробела нельзя использовать в имени контейнера и должен быть закодирован в имени BLOB-объекта и его URL-адресе.