Как сказал @GauravMantri, вы можете получить URL-адрес блоба через blob.toURL()
.Затем, если контейнер большого двоичного объекта является общедоступным (установить общедоступный уровень доступа) и свойство ContentType
большого двоичного объекта установлено правильно, например image/png
, вы можете получить прямой доступ к изображению через URL-адрес, например использовать вimg
тег для отображения на веб-странице ниже.
<img src="myaccountname.blob.core.windows.net/test/testURL">
Однако, учитывая безопасный доступ, для контейнера установлен уровень частного доступа, см. Официальные документы Secure access to an application's data in the cloud
и Using shared access signatures (SAS)
.Затем нам нужно сгенерировать URL-адрес блоба с подписью SAS для доступа.
Вот пример кода для создания URL-адреса BLOB-объекта с подписью SAS.
SharedKeyCredentials credentials = new SharedKeyCredentials(accountName, accountKey);
ServiceSASSignatureValues values = new ServiceSASSignatureValues()
.withProtocol(SASProtocol.HTTPS_ONLY) // Users MUST use HTTPS (not HTTP).
.withExpiryTime(OffsetDateTime.now().plusDays(2)) // 2 days before expiration.
.withContainerName(containerName)
.withBlobName(blobName);
BlobSASPermission permission = new BlobSASPermission()
.withRead(true)
.withAdd(true)
.withWrite(true);
values.withPermissions(permission.toString());
SASQueryParameters serviceParams = values.generateSASQueryParameters(credentials);
String sasSign = serviceParams.encode();
String blobUrlWithSAS = String.format(Locale.ROOT, "https://%s.blob.core.windows.net/%s/%s%s",
accountName, containerName, blobName, sasSign);
Вы также можете добавить подпись SAS в конце строки blob.toURL()
.
String blobUrlWithSAS = blob.toString()+sasSign;
О подписи SAS вы можете обратиться к этим образцам кодов в ServiceSASSignatureValues Class
и AccountSASSignatureValues Class
.