c# - 有没有办法将 blob 从本地存储模拟器复制到远程 azure 存储?

标签 c# azure azure-storage azure-storage-emulator

我正在尝试使用 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/

相关文章:

c# - 编码后字段中的错误值

azure - 通过管理组强制所有 Azure 访问

azure - 存储静态文件(图像、CSS、JavaScript)的最佳性能 - CDN - Blob 存储或 Web 角色

azure - 尝试获取诊断事件时遇到 StorageException

c# - 在ASP中显示实时图的有效方法

c# - linq to sql outer left join with multiple join conditions

c# - 在 ASP.NET MVC 中通过重定向传递复杂对象?

c# - 在数据库中处理和存储 Azure IoT 中心消息

c# - 如何从 Microsoft Azure 移动服务中的表读取数据并将其放入我的应用程序中?

azure - 将对象更新到 Azure 表存储 - 有没有办法获取新的时间戳?