2010-04-12 104 views
7

我试图一个34 MB的文件上传到BLOB一个34 MB的文件,但它促使我一些错误的Windows Azure:无法上传到BLOB

XML Parsing Error: no element found 
Location: http://127.0.0.1:83/Default.aspx 
Line Number 1, Column 1: 

我应该怎么做.. ..How解决它


我能够上传大小500KB的小文件..但我有大小34 MB文件被上传到我的blob容器

我尝试了用

但我不能把它上传..谁能告诉我怎么做呢....

+0

你得到什么错误?这一点很重要。 – dthorpe 2010-04-13 02:02:00

回答

8

必须使用块blob上载大于64MB的Blob。将文件分解成块,上传所有块(将每个块与唯一的字符串标识符相关联),并在最后将块ID列表发布到blob以一次性提交整个批次。

对于大小小于64MB的大块,也建议上传块。网络连接或路由通过互联网的打嗝很容易在非常大的上传中丢失一两帧,这会破坏或使整个上传无效。使用更小的块来减少你对宇宙事件的暴露。

在这个话题更多信息:http://social.msdn.microsoft.com/Forums/en-NZ/windowsazure/thread/f4575746-a695-40ff-9e49-ffe4c99b28c7

+0

请注意,使用块列表上传对于大于64MB的大块也是有利的。我不知道如果UploadFromStream API在内部使用块,但我确实知道它比网络流量和丢弃的数据包(WiFi丢弃)更敏感,而不是自己上传更小的(64k)块。 – dthorpe 2010-04-19 20:08:29

1

我会通过降低一些登录项目,试图跟踪问题下来开始。它可能不会发生在你认为的地方。可能还有一个权限错误。尝试在数据库中添加一些虚拟数据。如果仍然失败,那可能是一个潜在的问题。

但是通过一些调试,日志记录和一些代码审查来跟踪它,我敢打赌,你可以更快地找到问题的根本。它也将有助于使你的代码更健壮。

1

你可以在这里使用的斑点。我认为它与您的网络请求大小有关。您可以通过增加元素中maxRequestLength属性的数量来更改web.config中的此设置。如果您发送500Kb的大块,那么您正在浪费带宽并降低性能。发送更大的数据块,如每块1-2 Mb。请参阅我的Silverlight或基于HTML5的上传控件以获得分块上传。 Pick Your Azure File Upload Control: Silverlight and TPL or HTML5 and AJAX

1

使用Blob Transfer Utility下载并上传所有blob文件。

它是一种有效处理数千个(小/大)blob传输的工具。

二进制文件和源代码,在这里:http://bit.ly/blobtransfer