我正在尝试使用 C# 将视频文件从本地 Azure 存储复制到远程存储,以便能够使用 Azure 媒体服务对其进行编码。
使用 StartCopy 方法检索副本的 blob 后,我收到返回的 404 NOT FOUNT 异常。
destinationBlob.StartCopy(new Uri(sourceBlob.Uri.AbsoluteUri + signature));
sourceBlob.Uri.AbsoluteUri
的值是本地 Uri (http://127.0.0.1/ params)
我希望执行副本,但我收到了 404 错误。
最佳答案
- 您需要两个与 Azure 存储的连接。
- 您需要连接到模拟器中的本地视频文件并将其视为流(称为 localStream)。
- 然后,您需要在 Azure 存储中打开目标(远程)端点并打开它 作为流写入(称之为remoteStream)
- 然后您可以执行 localStream.CopyTo(remoteStream);
此示例允许您将任务传递给该函数,该函数接受 Stream 作为要处理的对象。您需要调整 utils.GetBlockBlobReference 以指向您的实际 Blob 引用。此方法打开 Wtire 的流,您可能还需要一个打开流进行读取的方法。我有不同的提供程序来读取/写入存储。
public async Task Use(string pointer, Func<System.IO.Stream, Task> useAction)
{
if (useAction == null)
{
throw new ArgumentNullException(nameof(useAction));
}
var blobRef = await utils.GetBlockBlobReference(storageFactory, pointer);
using (var cloudStream = await blobRef.OpenWriteAsync())
{
await useAction(cloudStream);
}
}
关于c# - 有没有办法将 blob 从本地存储模拟器复制到远程 azure 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54765533/