【问题标题】:Windows Azure: Can't upload a 34 MB file on to the blobWindows Azure:无法将 34 MB 文件上传到 blob
【发布时间】:2011-02-07 02:27:30
【问题描述】:

我试图将一个 34 MB 的文件上传到 blob,但它提示我一些错误

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

我该怎么办....如何解决它


我可以上传大小为 500KB 的小文件。但我有一个大小为 34 MB 的文件要上传到我的 blob 容器中

我试过了

protected void ButUpload_click(object sender, EventArgs e)
        {
            // store upladed file as a blob storage
            if (uplFileUpload.HasFile)
            {
                name = uplFileUpload.FileName;
                // get refernce to the cloud blob container
                CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");

                // set the name for the uploading files
                string UploadDocName = name;

                // get the blob reference and set the metadata properties
                CloudBlob blob = blobContainer.GetBlobReference(UploadDocName);
                blob.Metadata["FILETYPE"] = "text";
                blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType;

                // upload the blob to the storage
                blob.UploadFromStream(uplFileUpload.FileContent);

            }
        } 

但我无法上传它..谁能告诉我怎么做....

【问题讨论】:

  • 您遇到什么错误?这很重要。

标签: azure blob azure-blob-storage


【解决方案1】:

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

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

此讨论主题中的更多信息:http://social.msdn.microsoft.com/Forums/en-NZ/windowsazure/thread/f4575746-a695-40ff-9e49-ffe4c99b28c7

【讨论】:

  • 请注意,使用阻止列表上传对于小于 64MB 的大型 Blob 也是有利的。我不知道 UploadFromStream API 是否在内部使用块,但我知道它对网络流量和丢弃的数据包(wifi 丢弃)比自己上传更小的(64k)块更敏感。
【解决方案2】:

我会先将一些登录信息放入项目中以尝试跟踪问题。它可能不会发生在你想象的地方。也可能存在权限错误。尝试将一些虚拟数据添加到数据库中。如果它仍然失败,那可能是一个潜在的问题。

但是通过一些调试、日志记录和一些代码审查自己来追踪它,我敢打赌你可以通过这种方式更快地找到问题的根源。它还有助于使您的代码更加健壮。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      使用 Blob 传输实用程序下载和上传您的所有 Blob 文件。

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

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

      【讨论】:

        猜你喜欢
        • 2013-01-01
        • 2021-12-30
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        • 2017-03-14
        • 2013-10-04
        • 2014-02-06
        • 2013-02-22
        相关资源
        最近更新 更多