问题标签 [azure-blob-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12672 浏览

c# - Azure - 更新 BLOB 存储中的现有 xml 文件

我将 XML 文件存储在 BLOB 存储中,我试图找出更新它们的最有效方法(和/或向它们添加一些元素)。在 WebRole 中,我想出了这个:

考虑到效率,我正在查看这些参数:

  1. BLOB事务
  2. 带宽。(不确定是否计算在内,因为代码在数据中心运行)
  3. 实例上的内存消耗。

有几点要提:

  • 我的 xml 文件大约 150-200 KB。

  • 我知道 XDocument 将整个文件加载到内存中,并且在流( XmlWriter 和 XmlReader )中工作可以解决这个问题。但我认为这将需要使用 BlobStream ,这可能会导致事务效率降低(我认为)。

  • 关于blob.Delete(),没有它,blob存储中上传的xml似乎在它的末尾缺少一些结束标记。我认为这是由与旧数据的冲突引起的。我在这里可能完全错了,但是使用 delete 解决了它(尽管要花费一笔交易)。

考虑到我提到的参数,我提供的代码是一种好的做法,还是存在更有效的方法?

0 投票
1 回答
3522 浏览

c# - 如何将 Azure Blob 文件复制到 Azure 本地存储

我有一个托管在 Azure 中的 WCF 服务。

我有一个要保存在 Azure blob 存储 (1.1G) 中的空间数据库文件。压缩后为500K。

我想在我的服务启动时将其复制到本地存储,然后使用 spatialite 从数据库文件中运行各种空间功能。空间数据是静态的。

有人有代码片段(C#)来将文件从 azure blob 存储复制到本地存储吗?

(另外,我认为这种方法是有道理的——是吗?)

(另外,我应该费心压缩文件以进行 blob 存储吗?)

谢谢

编辑:感谢前两个回复。我希望使用一些代码片段。我可以使用更多的解释来说明哪条路线更好。只需将其全部编码或使用此引导想法。

解决方案:我将 SMARX 标记为答案,因为它应该适用于任何受保护的 azure 文件,但由于该文件是公开可用的 blob 文件,因此我跳过了 SMARX 建议的 CloudStorageAccount 路由,以支持简单的 Web 访问。我想知道使用 SMARX 的方法是否有任何速度优势。任何意见将不胜感激。

注意:您必须通过 webRole 属性配置本地存储

0 投票
4 回答
4028 浏览

file-upload - 有关 azure blob 对象更改的通知

我可以以某种方式订阅有关 Azure 的 blob 对象更改的通知吗?

我的目的是使用 SAS 将文件上传委托给客户端,并在最近(上传完成后)更新数据库。看起来我需要不断检查 blob 的状态,但这是一个非常消耗资源的过程。

0 投票
1 回答
2311 浏览

azure - 将文件上传到 Azure BLOB 存储 - Parallel.Foreach 比 Foreach 慢

我有以下代码用于将文件夹从本地存储上传到 blob 存储,在 blob 的名称中包括文件夹名称本身(该代码基于此处找到的一些方法http://blog.smarx.com/posts/pivot-odata -and-windows-azure-visual-netflix-browsing):

和 :

此代码按预期工作并上传文件夹,但需要花费大量时间才能完成 -上传 25 个文件需要 20 秒,每个文件 40KB~。所以我厌倦了用普通循环替换并行循环,如下所示:

现在上传立即完成(大约3 秒)。

同样重要的是要注意我正在使用存储模拟器进行开发。
Parallel.Forech 显然应该更快。这种差异是来自存储模拟器的限制(并且在上线时,Parallel 会更快)还是我可能做错了什么?

0 投票
6 回答
8096 浏览

c# - 将大量图像批量上传到 Azure Blob 存储

我的硬盘上本地存储了大约 110,000 张各种格式(jpg、png 和 gif)和大小(2-40KB)的图像。我需要将它们上传到 Azure Blob 存储。在执行此操作时,我需要设置一些元数据和 blob 的 ContentType,否则它是直接批量上传。

我目前正在使用以下内容来处理一次上传一张图片(并行超过 5-10 个并发任务)。

我想知道是否有另一种技术可以用来处理上传,以使其尽可能快。这个特定项目涉及将大量数据从一个系统导入到另一个系统,并且出于客户原因,它需要尽快完成。

0 投票
0 回答
123 浏览

c# - 如何跟踪无序的单个对象,然后加入()连续的对象?

我首先要说的是,这比盲目地联合byte[]起来要困难一些。

我的总体目标是优化当前将许多 512 字节页面上传到 Web 服务器(Azure Page Blob)的应用程序,并将其减少到 4Megs 或更少的单个大型上传。有关原因的更多背景信息,请参阅此问题底部的链接。

原因的简短答案:这种优化将提高速度(更少的 IO)并通过使用 Azure 稀疏文件长期节省资金

现在了解详情:

班级将需要

  • 接受数据并将其存储(定义为alignment startalignment stop的数据以及随附的有效负载。

  • N 条数据到达后,或event发生一次,ProcessData()。这意味着是时候根据边界组装数据了( 的停止值blob1必须与 的开始值对齐blob2

  • 连续的数据实际上可能无序到达。

  • 非连续数据被定义为调用应用程序在发生之前没有发送它processData()。此外,如果整个 512 字节范围 == 零,则得到特殊处理,并被视为非连续的。

  • 我们正在处理 byte[] 的类型,因此这里的有效列表可能很复杂。我想避免不必要的数组副本和扩展。

说得通?(像泥一样,我希望不是)

到目前为止,我最接近的是编写方法签名:(我知道跛脚)

我只需要有人指导我如何有效地跟踪这些事情......我可以从那里处理它。即使是抽象的方向也会有所帮助

有人可以让我了解我应该如何跟踪和有条件地连接连续数据范围的正确概念方向吗?

更不用说我试图拥有仅在需要时扩展或复制数组的有效逻辑。

0 投票
1 回答
3615 浏览

c# - container.ListBlobsSegmented 与 blobclient.ListBlobsWithPrefix 有什么区别?

在 Azure Blob 存储中,这两个不同对象上的这两种方法有什么区别?我什么时候使用ContainerInstance.ListBlobsSegmented()vs CloudBlobClientInstance.ListBlobsWithPrefix()

我使用 PageBlob 与块 Blob 有关系吗?

0 投票
1 回答
52 浏览

http - 可以在一次调用中执行多个 PageBlob 操作吗?(许多 GET 或 PUT)

我有客户端在高延迟连接上访问 Azure 存储,看起来缓慢的主要原因是每次调用之间的延迟。

每个用户发生数百次以下情况

获取平面目录列表 获取列出的 blob 的页面 请求页面中的数据 应用程序正在利用 PageBlob 的“稀疏”特性和 512 字节的小分配单元,但这有一个副作用创建太多事务。

我可以将多个“获取页面范围”或“获取页面 Blob”请求对具有不同名称的对象进行批处理,就像在同一个 HTTP 请求中一样:

或者同样的问题也适用于 PUT 的类似操作

0 投票
1 回答
353 浏览

javascript - 用于 Silverlight 或 Javascript 的强大 Azure 存储库(CloudBlob、PageBlob)

我正在寻找一个强大的 Azure 存储库,它可以访问 pageblob 和常规 blob,具有与标准库一样多的错误检查和功能。

我对将共享访问签名与 PageBlobs 与任一解决方案一起使用特别感兴趣。我的应用程序需要的核心功能是

  • 列出页面 blob 并解析列出活动页面的 XML

  • 使用平面层次结构搜索 blob

  • 将结果处理为二进制流

0 投票
1 回答
245 浏览

azure - sdk1.4 中的 windows azure blob 租赁

我一直在使用我在咨询以下线程后编写的以下代码 -在 Azure 云应用程序中使用 blob-leasing 功能

上面的 readFully() 方法只是将流中的内容获取到 byte[] 数组。

我一直在使用此代码将一些内容上传到任何具有有效leaseId 的 blob。在我迁移到 Azure SDK 1.4 版之前,这一切正常。在新版本的 azure sdk 中,我在 req.GetResponse() 方法中收到错误 400。

有人可以指出 azure sdk 1.4 发生了什么变化吗?

谢谢卡皮尔