gpt4 book ai didi

azure - 如何从关联的 Blob 容器中的现有 Blob 创建 Assets ?

转载 作者:行者123 更新时间:2023-12-03 03:13:27 25 4
gpt4 key购买 nike

我需要将文件从本地系统上传到 azure 媒体服务。我已使用 HTML5 uploader (浏览器 block 上传)将内容从客户端上传到 AMS。引用自, http://gauravmantri.com/2013/02/16/uploading-large-files-in-windows-azure-blob-存储使用共享访问签名-html-和-javascript。

现在我需要将上传的文件从 Blob 存储移动到 Azure 媒体服务作为 Assets 并发布。如何实现这一目标。任何人都可以提供此过程的示例。

最佳答案

从此链接:Copying an Existing Blob into a Media Services Asset v2

⚠️ 媒体服务 API v2(已过时,v2 将于 2024 年 2 月 29 日停用)

/// <summary>
/// Creates a new asset and copies blobs from the specifed storage account.
/// </summary>
/// <param name="mediaBlobContainer">The specified blob container.</param>
/// <returns>The new asset.</returns>
static public IAsset CreateAssetFromExistingBlobs(CloudBlobContainer mediaBlobContainer)
{
// Create a new asset.
IAsset asset = _context.Assets.Create("CopyBlob_" + Guid.NewGuid(), AssetCreationOptions.None);

IAccessPolicy writePolicy = _context.AccessPolicies.Create("writePolicy", TimeSpan.FromHours(24), AccessPermissions.Write);
ILocator destinationLocator = _context.Locators.CreateLocator(LocatorType.Sas, asset, writePolicy);

CloudBlobClient destBlobStorage = _destinationStorageAccount.CreateCloudBlobClient();

// Get the asset container URI and Blob copy from mediaContainer to assetContainer.
string destinationContainerName = (new Uri(destinationLocator.Path)).Segments[1];

CloudBlobContainer assetContainer = destBlobStorage.GetContainerReference(destinationContainerName);

if (assetContainer.CreateIfNotExists())
{
assetContainer.SetPermissions(new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
});
}

var blobList = mediaBlobContainer.ListBlobs();
foreach (var sourceBlob in blobList)
{
var assetFile = asset.AssetFiles.Create((sourceBlob as ICloudBlob).Name);
CopyBlob(sourceBlob as ICloudBlob, assetContainer);
assetFile.ContentFileSize = (sourceBlob as ICloudBlob).Properties.Length;
assetFile.Update();
}

destinationLocator.Delete();
writePolicy.Delete();

// Since we copied a set of Smooth Streaming files,
// set the .ism file to be the primary file.
SetISMFileAsPrimary(asset);

return asset;
}

关于azure - 如何从关联的 Blob 容器中的现有 Blob 创建 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33385241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com