как получить BLOB-URL после загрузки файла в Azure

Почему возникает ошибка

В PHP регулярное выражение должно быть заключено внутри пары разделителей . Разделителем может быть любой небуквенный символ, не обратный слэш, не-пробельный символ; /, #, ~ являются наиболее часто используемыми. Обратите внимание, что также можно использовать ограничители стиля скобок, где открывающие и закрывающие скобки являются начальным и конечным разделителями, то есть , [pattern_goes_here] и т. Д. Все действительны.

« Неизвестная ошибка модификатора X "обычно возникает в следующих двух случаях:

  • Когда в вашем регулярном выражении отсутствуют разделители.
  • Когда вы используете разделитель внутри шаблона, не избегая его.

В этом случае регулярное выражение равно ]*>]*>. Механизм регулярных выражений рассматривает все от < до > как шаблон регулярного выражения, а затем все как модификаторы.

Regex:   ]*>]*>
       │     │  │          │
       └──┬──┘  └────┬─────┘
       pattern    modifiers

] здесь неизвестный модификатор, потому что он появляется после закрытия >. Вот почему PHP выдает эту ошибку.

В зависимости от шаблона, анонимная жалоба-модификатор также могла быть о *, +, p, / или ) или почти любую другую букву / символ. Только imsxeADSUXJu являются действительными модификаторами PCRE .

Как исправить это

Исправить легко. Просто оберните шаблон регулярного выражения любыми действительными разделителями. В этом случае вы можете выбрать ~ и получить следующее:

~]*>]*>~
│                   │
│                   └─ ending delimiter
└───────────────────── starting delimiter

Если вы получаете эту ошибку, несмотря на использование разделителя, возможно, это связано с тем, что сам шаблон содержит несвязанные вхождения указанного разделителя .

Или разделители escape-кода

/foo[^/]+bar/i, несомненно, вызовут ошибку. Таким образом, вы можете избежать этого, используя обратную косую черту, если она появляется в любом месте регулярного выражения:

/foo[^\/]+bar/i
│      │     │
└──────┼─────┴─ actual delimiters
       └─────── escaped slash(/) character

Это утомительная работа, если ваш шаблон регулярного выражения содержит так много вхождений символа разделителя.

Более чистым способом, конечно же, было бы использование другого разделителя. В идеале символ, который нигде не встречается внутри шаблона регулярного выражения, скажем # - #foo[^/]+bar#i.

More reading:

30
задан ΩmegaMan 7 June 2018 в 17:16
поделиться

1 ответ

Вышеупомянутое решение прекрасно, Вы просто должны добавить ниже кодекса, чтобы получить URL Изображения.

static void BlobUrl()
{
var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
var cloudBlobClient = account.CreateCloudBlobClient();
var container = cloudBlobClient.GetContainerReference("container-name");
var blob = container.GetBlockBlobReference("image.png");
blob.UploadFromFile("File Path ....");//Upload file....

string blobUrl = blob.Uri.AbsoluteUri;
}

Эти стринги-> blobUrl дадут Вам URL капли, чтобы получить изображение.

-1
ответ дан 27 November 2019 в 16:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: