问题标签 [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 投票
1 回答
1769 浏览

silverlight - Silverlight clientaccesspolicy.xml 和 Azure 开发存储

我在理解 Silverlight 下载 clientaccesspolicy.xml 文件的情况时遇到了一些麻烦。我对运行时环境有一些需要解释的复杂情况。

这是一个 Azure Web 应用,在开发结构中以完整的 IIS 模式运行。定义了两个站点,App 和 Admin。由于它们都在端口:80 上,因此可以通过主机头 app.dev.com 和 admin.dev.com 访问它们,它们在我的 HOSTS 文件中都有指向 127.0.0.1 的条目。访问这两个客户端应用程序工作正常。Silverlight 加载并点击定义的 RIA 服务,没问题。

当 Silverlight 客户端尝试从开发存储访问 blob 时,事情变得很棘手。这个问题之前已经解释过,所以我不会太深入——底线,你不能把 XML 文件放在 web 的根目录中,因为 dev 存储是如何工作的(它转到http://127.0.0.1 :10000/devstoreaccount1/clientaccesspolicy.xml )。解决方案是重新映射 URL 的反向代理——我已经使用Fiddler rule完成了它。这样做的目的是“如果有 127.0.0.1:11000 的请求进入,则将该请求修改为 :10000 并获取它”等。

就重新映射而言,这是可行的;我可以在浏览器中点击http://127.0.0.1:11000/clientaccesspolicy.xml并获取实际位于 127.0.0.1:10000/devstoreaccount1/clientaccesspolicy.xml 的文件:

然后从通过http://app.dev.com:81/default.aspx访问的 Silverlight 客户端失败(提醒您,在 HOSTS 中重新映射到 127.0.0.1)

除了例外

在 Fiddler 中查看,未下载 clientaccesspolicy.xml 文件!我不知道为什么,或者如何调试它。我可以从我的浏览器下载 blob。谁能解释为什么这会在下载 XML 文件之前抛出?

然后我尝试更新那些 Fiddler 规则:

并更改要下载到的 URL

而这个成功了!Fiddler 捕获显示首先下载的 clientaccesspolicy.xml 文件和第二个 blob。

谁能帮忙解释这里发生了什么?在这两种情况下,Silverlight 应用程序都在http://app.dev.com:81/default.aspx进行访问。当它尝试从http://127.0.0.1:11000下载 blob 时,它会在没有首先下载 clientaccesspolicy.xml的情况下失败并出现 SecurityException 。但是当它从http://app.dev.com:10000下载一个 blob 时,它会成功,首先下载 clientaccesspolicy.xml,然后是 blob。

谢谢你的帮助,这个让我难住了。

0 投票
4 回答
14078 浏览

http - Azure Blob:“不满足使用 HTTP 条件标头指定的条件”

运行应用程序时出现此异常。它也发生在真正的 Azure blob 存储中。

我已经用 Fiddler 抓住了造成这个问题的请求:

这是回应:

当我使用从这一行检索到的 Stream 时会发生这种情况:

为什么 ETAG 在读操作中介意?我怎样才能避免这个问题?

每次我在 blob 存储上启动多个并行任务时都会发生这种情况。

如果我使用:

我得到了这个没有内部异常的异常(在它有一个带有详细信息的 WebException 之前),或者是 Fiddler 中的一条失败行:

提前致谢。

0 投票
2 回答
306 浏览

azure - 文件绑定应用程序中与 Azure 的架构设计和角色通信

我正在考虑将我的 Web 应用程序迁移到 Windows Azure 以实现可扩展性,但我想知道如何最好地对我的应用程序进行分区。

我希望我的场景是典型的,如下所示:我的应用程序允许用户上传原始数据,对其进行处理并生成报告。然后,用户可以查看他们的原始数据并查看他们的报告。

到目前为止,我正在考虑一个网络角色和一个工作者角色。但是,我知道可以将 VHD 安装到具有读/写访问权限的单个实例,因此我的 Web 角色和辅助角色都需要访问公共文件存储。因此,也许我需要一个 Web 角色和两个独立的工作角色,一个工作角色用于处理,另一个工作角色用于读取和写入文件存储。这是一个好方法吗?

我很难想象角色之间的关系,并担心此分区之间的通信造成的开销,因此欢迎在此提供任何输入。

0 投票
2 回答
6331 浏览

jquery - 使用 jQuery 从 Azure Blob 存储中查询 JSON 数据

我在 Azure blob 存储中有一些数据。数据为 JSON,并以“application/json”内容类型保存。

我的应用程序将托管在“myapp.com”上,这是一个包含“myapp.cloudapp.net”的 CNAME 的域。我想我应该创建一个指向我的 Azure 存储的自定义域名,例如“storage.myapp.com”。

但是之后?我可以使用 JSONP 或其他方式对 Azure 存储进行 JSON ajax 调用吗?

如何更好地做到这一点?

非常感谢。

0 投票
2 回答
682 浏览

c# - 散列文件时放慢速度

我正在尝试获取存储在 Windows Azure Blob Store 中的文件的哈希值。

我希望然后将哈希与存储在本地计算机上的版本进行比较,看看是否有区别。

以下代码获取哈希。

问题是这对小文件很有效,但我正在处理大于 100MB 的文件,而对于这些文件,服务需要的时间太长,最终会超时。

我想知道这是否是正确的方法,或者是否有另一种方法来确定两个文件是否包含相同的数据,这对于大文件来说会更快。

谢谢,马特

0 投票
2 回答
291 浏览

sharepoint-2010 - Running two instances of Azure VM

I am using Azure VM role. I created a separate VHD (uploaded to page blob) for storing SQL data files (to overcome data persistence issue with VM role). The SharePoint 2010 has been configured on VM. I want to run 2 instances of Azure VM, where I am faining as mounting the data VHD in write mode on 2 instances is not possible. Can anyone help me out in this?

0 投票
1 回答
917 浏览

azure - 获取容器中的最后一个 Azure Blob

我的容器中有一个具有以下名称的 blob 列表

例如。项目1 项目2 项目3 项目9 项目10 项目12 项目45

我想得到第一个和最后一个 blob,在这种情况下是 item1 和 item45

但是,当我使用 cloudblobclient.cloudblobdirectory.listblobs.last 时,item9 被退回给我,而不是我想要的。从列表中获取最后一项(45)的最佳方法是什么。

只能想到遍历完整列表,然后对于每个项目,获取字符“项目”之后的数字,并将该数字与之前的高位或低位进行比较。由于前4个字符是固定的,我将结合“item”和higherCnt:

因此最后的 blob(item45):

有没有其他方法可以做到这一点?当项目列表增长到数千时,担心性能。我只对第一个和最后一个 blob 感兴趣。谢谢!

0 投票
2 回答
552 浏览

asp.net - 尝试在 Azure 存储中保存生成的热图

我有一个热图,目前在我要移植到 Azure 存储的独立服务器上运行。如何在 Azure 存储中保存 butmap 文件。最初,我的 web.config 文件中有一个条目,将图像缓存指向另一个驱动器 (IE) 上的直接路径,现在所有内容都将位于存储帐户的 ~/map_cache 文件夹中。我如何修改它以在 Azure 中本地存储。

目前我收到以下错误消息

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Runtime.InteropServices.ExternalException:GDI+ 中发生一般错误。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[ExternalException (0x80004005): A general error occurred in GDI+.] System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) +772265 HotSpotTileServer.Page_Load(Object sender, EventArgs e) in C:\Projects\xxx \xxx\SpeedTrap\HotSpotTileServer.aspx.cs:141 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 System.EventHandler.Invoke(Object sender, EventArgs e) +0 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint) +3048

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.1

0 投票
2 回答
2905 浏览

.net - Azure Page Blob 要求我篡改文件大小

我正在尝试创建一个 Page Blob,因为将来我需要随机访问,虽然我可以上传文件,但下载时大小不同。

我上传了“file.docx”,然后下载为“file2.docx”。下载的有点大,实际上它的大小是四舍五入到页面 blob 页面大小,512 :) 在这种特殊情况下,Microsoft Word 给我一个警告说文件已损坏,但我仍然可以打开它并且内容是什么我期待着。

我从这里获得了代码示例:Using Windows Azure Page Blobs and How to Efficiently Upload and Download Page Blobs。我已经检查了上传它的代码和文档,显然您的页面上传必须从 512 字节边界开始(startingOffset % 512 == 0),并在 512 边界结束 - 1。然后当我需要上传不符合 512 的文件?

例如,如果我有一个 550 字节的文件,然后我上传并下载它,我会得到一个 1024 字节的文件,对吗?我应该怎么办?将原始文件大小保留在元数据中,还是有办法做到这一点?(或示例)。

提前致谢。

0 投票
1 回答
1213 浏览

entity-framework - Azure Blob 服务是否有实体框架数据提供程序?

我正在考虑使用 WCF 数据服务来实现公开存储在 Azure Blob 服务中的对象的服务。我想知道是否可以使用基于实体框架的数据模型。据我了解,我需要一个与实体框架兼容的数据提供程序,它可以存储和检索来自 Blob 服务的数据。有这样的数据提供者吗?