[英]Get URL path for image from episerver blob file
我在我的代碼中使用以下方法創建一個 blob 文件
添加到 Blob
Thumbnail = MediaToBlob(thumbMediaUrl, accessToken, ".jpg", blobFactory, qbankMedia, "text/html");
blobCache.Add(videoMediaUrl, qbankMedia.BinaryData);
MediaToBlob 方法
public Blob MediaToBlob(string mediaUrl, string accessToken, string extension, IBlobFactory blobFactory, IQBankEpiMedia qbankMedia, string mimeType, int maxLength = int.MaxValue)
{
var mediaStream = GetMediaStream(mediaUrl, accessToken, mimeType, maxLength);
Blob blob = null;
if (mediaStream != null)
{
blob = blobFactory.CreateBlob(qbankMedia.BinaryDataContainer, extension);
using (var blobStream = blob.OpenWrite())
{
byte[] buffer = new byte[64 * 1024];
int read;
while ((read = mediaStream.Read(buffer, 0, buffer.Length)) > 0)
blobStream.Write(buffer, 0, read);
mediaStream.Flush();
mediaStream.Close();
}
}
return blob;
}
我需要獲得此縮略圖 object 的相對路徑,以便我可以使用它在站點中呈現圖像。 我可以使用 Thumbnail.ID.AbsoluteUri 來獲取:
epi.fx.blob://default/f791355aa6334c92b5f370c5cfafd971/adc882777a04431baae83a2e05f3f02d.jpg
取而代之的是,我需要這樣的東西:
http://localhost:8000/episerver/f791355aa6334c92b5f370c5cfafd971/adc882777a04431baae83a2e05f3f02d.jpg
任何人都可以指導我擁有可以正常使用的圖像 Url 嗎?
您可以通過將屬性名稱附加到 URL 來訪問縮略圖屬性:
private readonly IUrlResolver _urlResolver;
var thumbnailUrl = _urlResolver.GetUrl(imageContentReference) + "/thumbnail";
這適用於您的內容類型可能具有的任何縮略圖屬性。 “縮略圖”是 ImageData 上可用的默認屬性。
當您將圖像或媒體文件加載到 Episerver 中時,它將被視為內容,它將具有內容引用,因此您還可以使用它獲取資產。 因此,當將文件保存到 blob 時,您應該使用它來保存媒體內容。 然后,您可以像獲取 episerver 中的任何內容一樣獲取 url。
我建議查看 Jon 的這兩篇博文
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.