使用流添加到 azure blob 存储

2023-12-30

我正在尝试添加一个IFormFile通过 .net core Web API 接收到 azure blob 存储。这些是我设置的属性:

static internal CloudStorageAccount StorageAccount => 
    new CloudStorageAccount(new StorageCredentials(AccountName, AccessKey, AccessKeyName), true);

// Create a blob client.
static internal CloudBlobClient BlobClient => StorageAccount.CreateCloudBlobClient();

// Get a reference to a container 
static internal CloudBlobContainer Container(string ContainerName) 
                        => BlobClient.GetContainerReference(ContainerName);

static internal CloudBlobContainer ProfilePicContainer 
        => Container(ProfilePicContainerName);

现在我用的是ProfilePicContainer像这样:

var Container = BlobStorage.ProfilePicContainer;
string fileName = Guid.NewGuid().ToString("N") + Path.GetExtension(ProfileImage.FileName);
var blockBlob = Container.GetBlockBlobReference(fileName);
var fileStream = ProfileImage.OpenReadStream();
fileStream.Position = 0;
await blockBlob.UploadFromStreamAsync(fileStream);

这给了我以下错误:

Microsoft.WindowsAzure.Storage.StorageException:“无法访问关闭的流。”

内部异常 ObjectDisposeException:无法访问关闭的流。

调试时,我什至之前就注意到了fileStream.Position = 0它的位置已经是 0。但是我添加了该行,因为我收到此错误。就在等候线处,fileStream's _disposed设置为 false。

此外,关于 blob 连接,我尝试为字符串常量设置无效值AccessKey它显示完全相同的错误。这意味着我不知道它是否是偶数连接。我已经检查了其中的所有值blobBlock在调试器中,但我不知道如何验证它是否已连接。


尝试直接从流写入时似乎存在一些问题。我能够通过将流转换为字节数组来运行代码。

await blockBlob.UploadFromByteArrayAsync(ReadFully(fileStream, blockBlob.StreamWriteSizeInBytes),
                            0, (int)fileStream.Length);

The ReadFully是对这个答案的修改https://stackoverflow.com/a/221941 https://stackoverflow.com/a/221941

static byte[] ReadFully(Stream input, int size)
{
    byte[] buffer = new byte[size];
    using (MemoryStream ms = new MemoryStream())
    {
        int read;
        while ((read = input.Read(buffer, 0, size)) > 0)
        {
            ms.Write(buffer, 0, read);
        }
        return ms.ToArray();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用流添加到 azure blob 存储 的相关文章

  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • Grpc - 将消息从一个客户端发送到连接到同一服务器的另一个客户端

    是否可以将消息从一个客户端发送到连接到同一服务器的另一个客户端 我想将数据从一个客户端发送到服务器然后发送到特定客户端 我想我需要获取客户端 ID 但我不知道如何获取此 ID 以及如何从服务器将此消息发送到该客户端 我这里有一个样本 这是一
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • 当 minifyenable 时,Retrofit 2 在发布 APK 中返回 null,但在调试 APK 中返回正常

    当 minify 启用时 获取空响应 但发布 APK 时代码为 200 当 minify 为 false 时 则可以 但是当启用 minify 时 调试 APK 会得到预期的响应 问题解决了 proguard 规则没有问题 不需要添加任何额
  • Python sum() 导入 numpy 后有不同的结果

    我遇到了 Jake VanderPlas 的这个问题 我不确定我对导入 numpy 模块后结果不同的理解是否完全正确 gt gt print sum range 5 1 gt gt 9 gt gt from numpy import gt
  • Rails 没有传递“提交”按钮参数

    在新服务器上重新安装 Rails 应用程序 应用程序的一部分可以根据用户选择的按钮向两个方向之一进行分叉 这部分不起作用 当我查看日志时 我看到了我给表单的值 execept为了commitparams 哈希的一部分 这似乎就是应用程序无法
  • 如何替换队列分析的列值

    我对使用 R 很陌生 我对此进行了搜索 但找不到任何指示 我正在进行同期群分析 Month1 下的数据是该特定月份注册的新用户数量 Month2 是继上个月注册之后继续的用户数量 我有一组数据如下 Month Start Date Mont
  • 验证列是否具有空值

    哪种 SQL 可以更快地验证特定列是否具有空值 为什么 1 SELECT FROM TABLE1 WHERE COL1 为空 执行此查询 然后检查是否能够读取任何记录 如果是 则有空值 2 从表 1 中选择 COUNT COL1 其中 CO
  • 如何使用shared_ptr并继承enable_shared_from_this创建克隆方法

    我已经看到编写返回 boost shared ptr 的克隆方法的一种有用方法是 class A public shared ptr a Clone const return shared ptr a CloneImpl protected
  • LongListSelector 和 DataTemplateSelector

    我正在使用 LongListSelector 来实现我的项目的列表或网格显示 为此 我创建了一个 DataTemplateSelector 并在运行时更改 LayoutMode 属性 这是可行的 但 DataTemplateSelector
  • 未处理的拒绝(错误):无法加载“WebPortal”的设置 - ASP.NET Core React

    我创建了一个 ASP NET Core 3React项目 我不断收到此错误 未处理的拒绝 错误 无法加载 WebPortal 的设置 GET https localhost 44367 configuration WebPortal htt
  • Spring框架的隐藏特性? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何修复错误“无法使用类型为 ((AnyObject!, NSError!) -> Void) 的参数列表调用 'findObjectInBackgroundWithBlock'

    对于下面的代码 得到Can t invoke findObjectInBackgroundWithBlock with an argument list of type AnyObject NSError gt Void 错误并且无法在后台
  • 如何仅使用 numpy 和 PIL 检测图像翻译

    给定两个图像 我需要检测两者之间是否存在平移偏移 我只能使用 numpy 和 PIL 这个帖子 https stackoverflow com questions 37584977 translate image using pil展示了如
  • 返回其自身类型的方法的接口

    我有一个情况 我正在上课 class Foo Foo Bar return new Foo 现在我想为它创建一个界面 class IFoo Bar 问号应该用什么代替 每个类都应该返回它自己的类型 而不是 Foo 下面的解决方案有效 但看起
  • 在某些视图中隐藏渲染页面 Razor

    在我的 mvc 应用程序中 我制作了一个页脚并像这样嵌入它 div class off canvas wrap div class inner wrap Html Action Menu Site div div
  • Android 无需开启蓝牙即可进行蓝牙扫描

    我正在创建一个具有低功耗蓝牙的应用程序 我发现了一件有趣的事情 我知道对于API level 23或更高版本 除了蓝牙之外 您还需要授予位置权限才能进行扫描 但我不知道即使从设置中关闭蓝牙也可以扫描 BLE 设备 我关闭了蓝牙 但定位功能仍
  • 如何从队列中获取特定元素?

    Unlike ArrayList 没有get int index 中的方法Queue检索指定位置的元素 有人请告诉我如何实现这一目标Queue Thanks 通过索引访问元素不是队列概念的一部分 如果您需要通过索引访问元素 您需要一个列表
  • MediaRecorder 在 Android 上启动视频捕获时出现问题

    我正在尝试开发一个应用程序 除其他外 它还可以录制用户的视频 因此 如果有前置摄像头 我需要使用前置摄像头捕获视频 我构建了一个相机预览 效果很好 我使用 Android How To Sites 构建了 MediaRecorder 并进行
  • Django:带条件的 ModelForm

    我正在尝试创建一个表单变量 默认玩家等级为 0 他可以更改名字 当他达到1级后 他可以更改名字和头像 当他达到3级时 他可以更改名字 头像和职业 ETC 模型 py class Player models Model level model
  • 是否允许使用多个非类型模板参数包?

    temp param p11 说 在 N4527 中 函数模板的模板参数包后面不应跟有另一个模板参数 除非该模板参数可以从函数模板的参数类型列表推导出来或具有默认参数 在这样的背景下non type模板参数包 不能有默认参数 那么到底需要为
  • C# 图表从数据表添加多个系列

    我从数据库中检索了几个大小各异的数据表 这 2 个中的一个只是一个示例 See the structure here I managed to create the 2 different series and have them show
  • 使用流添加到 azure blob 存储

    我正在尝试添加一个IFormFile通过 net core Web API 接收到 azure blob 存储 这些是我设置的属性 static internal CloudStorageAccount StorageAccount gt