以 Azure Blob 存储块上传视频

2023-12-13

我正在接收分块的文件内容。正如我所读到的,建议使用 Azure blob 存储的最新 nuget 是Azure.Storage.Blobs,但我找不到任何示例或方法如何分块上传文件?支持吗?

我收到的范围为Range标头。我正在用这个快速开始


您想要使用的方法是BlockBlobClient.StageBlock上传块数据并BlockBlobClient.CommitBlock它提交块并创建块 blob。

这是该功能的一个非常蹩脚的实现:)。它基本上从本地计算机读取一个非常大的文件,并通过将文件分割成 1MB 块来上传。

    static void UploadBlobsInChunks()
    {
        var containerClient = new BlobContainerClient(connectionString, "test");
        containerClient.CreateIfNotExists();
        var filePath = @"C:\temp\mymovie.mp4";

        var blockBlobClient = containerClient.GetBlockBlobClient("mymovie.mp4");
        int blockSize = 1 * 1024 * 1024;//1 MB Block
        int offset = 0;
        int counter = 0;
        List<string> blockIds = new List<string>();

        using (var fs = File.OpenRead(filePath))
        {
            var bytesRemaining = fs.Length;
            do
            {
                var dataToRead = Math.Min(bytesRemaining, blockSize);
                byte[] data = new byte[dataToRead];
                var dataRead = fs.Read(data, offset, (int) dataToRead);
                bytesRemaining -= dataRead;
                if (dataRead > 0)
                {
                    var blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(counter.ToString("d6")));
                    blockBlobClient.StageBlock(blockId, new MemoryStream(data));
                    Console.WriteLine(string.Format("Block {0} uploaded successfully.", counter.ToString("d6")));
                    blockIds.Add(blockId);
                    counter++;
                }
            }
            while (bytesRemaining > 0);
            Console.WriteLine("All blocks uploaded. Now committing block list.");
            var headers = new BlobHttpHeaders()
            {
                ContentType = "video/mp4"
            };
            blockBlobClient.CommitBlockList(blockIds, headers);
            Console.WriteLine("Blob uploaded successfully!");
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以 Azure Blob 存储块上传视频 的相关文章

  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反

随机推荐

  • 在单选按钮选择上显示元素

    我想展示input text场上radio button普通 JavaScript 中的选择 我缺少什么 const form document querySelector form const size form elements siz
  • 在 Objective-C 中,什么时候应该使用属性,什么时候应该使用实例变量?

    我不熟悉同时具有属性和实例变量的程序语言 所以我不知道使用属性和实例变量的好方法 现在 我在 Objective C 代码中仅使用属性 并且不使用任何实例变量 我需要使用实例变量吗 或者仅使用属性是 Objective C 的最佳实践 in
  • iPhone 上的二进制短信

    我正在寻找有关如何在 iPhone 上实现二进制 SMS 的信息 我特别想知道你需要在 iOS 应用程序中做什么 如果可能的话 监听特定的 SMS 端口并 然后收到专用的二进制短信通知 当然 我正在寻找基于官方 公共 API 的解决方案 没
  • 如何处理多种日期格式?

    当我到达下面的 df date 行时 当具有此格式的日期时应用程序崩溃2016 12 27 14 40 46 0000用来 致命错误 在解包可选值时意外发现 nil 我也看到了这一点 错误 执行被中断 原因 EXC BAD INSTRUCT
  • 使用 CImg 加载 PNG

    我无法使用 CImg 加载 PNG 我听说您需要先获取 libpng zlib 才能开始工作 但我不确定如何设置 我在Ubuntu上 我的来源 include
  • Firefox 上的 Polymer 1.0 ReferenceError:Polymer 未定义

    您好 我在 Chrome 和 Opera 上有一个可用的 Polymer 1 0 网页 现在我需要该页面在 Firefox 和 Safari 中运行 我有以下测试
  • Iframe 下的 IE11 怪异模式 - javascript 错误

    我几天来一直在阅读和寻找答案 但找不到答案 希望这篇文章能带来救赎 在我的公司 我们有一个在 IE8 上运行的网络应用程序 我们正在尝试迁移到 IE11 我们快到了但是 我们有一个旧模块 它是在旧框架中编写的 该框架托管在 iframe 中
  • 如何在 django-cms 中使用 iframe

    我正在寻找一个好的解决方案 使最终用户能够在模板占位符中插入 iframe Soundcloud 我考虑过使用 djangocms text ckeditor 插件 在里面文档它说使用可配置的清理程序来完成此操作 djangocms tex
  • ClassCastException 在 scala 中使用 ArgumentCapture for Double

    我使用时遇到问题ArgumentCapture for a Double在斯卡拉 我正在尝试捕捉一个Double对被嘲笑的特质的论证 当尝试捕获时 相同的语法可以正常工作Int 这是一个测试示例 import org scalatest F
  • 如何使用go模板通过FuncMap解析html文件

    我使用以下代码来解析 html 模板 效果很好 func test w http ResponseWriter req http Request data struct A int B int A 2 B 3 t template New
  • ubuntu 中不支持 Major.minor 版本 52.0

    我在用jdk1 8 0 25 当我使用以下命令检查 Java 版本时 java version 它输出以下内容 java version 1 7 0 65 OpenJDK Runtime Environment IcedTea 2 5 3
  • 如何自动将 MySQL 列转换为小写

    是否有一个属性可以添加到列中 以便将其值转换为小写 而不是通过 PHP 对每个值执行此操作 你也许可以通过trigger在插入或更新时触发 我自己 我宁愿创建一个view具有相关列的小写版本 视图的 SQL 可能类似于 SELECT ID
  • 使用列表理解进行素因数分解

    我想仅使用列表理解方法和 或找到给定数字的所有素因数 Haskell 中的 函数组合运算符 我特别想避免递归解决方案 例如 pfactors 120必须产生 2 2 2 3 5 output I tried pfactors n p p l
  • Bash for 循环设置一个变量、它的值并评估它?

    如何使用 for 循环来定义变量 and它的价值 and能够评价一下吗 我无法弄清楚评估部分 但使用 for 循环来定义变量and它的价值似乎有效 具体来说 for i in 1 4 do export my i var path i to
  • 如何使用 ngx-translateservice 翻译打字稿中的方法

    我尝试用这个问题中的所有这些例子来解决我的任务Angular ngx translate 在打字稿中的用法我不知道如何将 TranslateService 连接到我的方法 瑞典语翻译文件se json 无钥匙 NAME Namn 英文翻译文
  • Android自动备份错误

    我正在尝试实现 android 自动备份 Android 6 0 但它不起作用 我得到同样的错误 10 28 22 58 06 980 600 5578 I PFTBT Initiating full data transport back
  • 超时和会话超时问题

    我遇到超时问题 首先 即使 webconfig 中的时间设置为 120 分钟 服务器上每 20 分钟就会发生一次超时 其次 当超时发生时 它会转到登录页面 这是正确的 但重新登录时有时会转到默认页面 有时会转到之前所在的页面 我希望它每次都
  • 为什么缺少媒体类型 application/json 的 writer

    基本上我有一个安静的服务 帖子 它消耗 application json 并产生 application json 该服务的单个参数是一个带注释的 java 对象 我在用org jboss resteasy client ClientReq
  • Pandas 进行分组和求和,但在超过一定数量时创建新行

    我目前有一个数据集 我尝试根据列对行进行分组并对值为整数的列求和 然而 问题是一旦总和达到一定阈值我想创建一个新行 例如 在下面的数据框中 我尝试根据公司名称对行进行分组并总结权重 但是 我不希望权重超过 100 输入数据框 Company
  • 以 Azure Blob 存储块上传视频

    我正在接收分块的文件内容 正如我所读到的 建议使用 Azure blob 存储的最新 nuget 是Azure Storage Blobs 但我找不到任何示例或方法如何分块上传文件 支持吗 我收到的范围为Range标头 我正在用这个快速开始