【问题标题】:Uploading a large file from phone从手机上传大文件
【发布时间】:2013-06-12 00:30:50
【问题描述】:

我正在尝试编写一个需要将大量数据上传回我的服务器的 WP8 应用程序。我的服务器在 ASP.net 上运行并使用 WebAPI 实现 REST。

我已经达到了可以上传少量数据的地步,比如使用 POST 上传 2-5MB 的数据并将它们传输到 Azure blob。现在,我正在考虑使用此处定义的后台传输 API http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955(v=vs.105).aspx

从手机中传输大量数据,例如大约 40-50MB

手机 API 支持 -

通过蜂窝连接 - 5 MB,

通过 Wi-Fi 连接并使用电池供电 - 20 MB

通过 Wi-Fi 连接和外部电源 - 100 MB

我难以理解的部分是 -

  1. MSDN kb 文章建议服务器实现范围请求,这是公平的。但是,它并没有说明一次可以分块多少。我的上传服务器配置可以不受请求大小限制吗?

我希望客户端尽可能保持“哑”,并使用手机上现有的传输 API。我担心的是我的服务器的性能以及如果我开始在服务器上看到相当大的流量,那么服务器上有多少可用内存。有人可以给我一些关于接受大量数据的服务器最佳实践的建议吗?

【问题讨论】:

  • 我“认为”范围请求仅适用于下载或服务器响应场景。例如,如果您正在下载大文件并且连接丢失,那么您可以从停止的位置向服务器请求文件。有人告诉我,Http 没有与范围请求的请求端相关的规范,尽管自定义实现似乎不难想象。对于一般上传 100 MB 等大文件,您可以更改 Web API 中的默认缓冲策略,以流模式而不是缓冲模式读取传入请求。

标签: http rest upload asp.net-web-api windows-phone-8


【解决方案1】:

BackgroundTranferRequest 不支持 Range 标头。 see here

实现您自己的上传和下载客户端,您可以使用 Range 并绕过各种大小限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多