FineUploader上传到Android设备上的Azure stall

时间:2014-06-23 22:56:29

标签: javascript android azure-storage fine-uploader

我正在尝试让FineUploader直接上传到Azure Blob存储。

我按照说明操作,设置了包含上传器的演示页面,为CORS配置了我的blob存储帐户,并设置了SAS服务器。一切似乎都在桌面浏览器和我的iOS设备上按预期工作,但使用我的Android设备的上传似乎在8兆字节左右的某处大致停滞。

有时失速器永远无法恢复,有时它似乎恢复,上传另一个~8兆并再次失速。在任何一种情况下,它似乎都停留在PUT上2.2分钟。我不确定这个持续时间是否有任何意义,但到目前为止我的测试非常一致。

我尝试过禁用分块并启用了4兆的大小,据我所知,它似乎没有对结果产生重大影响。

我已尝试在2个无线网络上使用2个Android设备(4.3和4.4),使用相同的结果尝试4g。

我的网页上嵌有上传器,其中包含以下网址:

http://fineuploadertest.blob.core.windows.net/cdn/index.htm(4兆块)

如果要检查它们,

index2.htm(已禁用分块)和index3.htm(1 meg块)位于同一目录中。

此时我的想法已经不多了,有没有其他人遇到这个问题,或者我可以尝试一些额外的想法?

下面是我通过Chrome远程调试获得的一些调试输出,用于尝试(带有分块)失败。

PUTs 1-7成功,每次2-4秒,放置8秒,停滞2.2分钟。声明的错误是“net :: ERR_SSL_PROTOCOL_ERROR”,但我不确定这是否真的很重要或只是错误处理中的默认分支。

[Fine Uploader 5.0.2] Parsing template
[Fine Uploader 5.0.2] Template parsing complete
[Fine Uploader 5.0.2] Rendering template in DOM.
[Fine Uploader 5.0.2] Template rendering complete
[Fine Uploader 5.0.2] Received 1 files or inputs. 
[Fine Uploader 5.0.2] Attempting to validate image. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 1-1048576 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.0. 
[Fine Uploader 5.0.2] Sending GET request for 0.0 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.0 = part 0 
[Fine Uploader 5.0.2] Sending PUT request for 0.0 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 0 
[Fine Uploader 5.0.2] Chunk 0 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 1048577-2097152 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.1. 
[Fine Uploader 5.0.2] Sending GET request for 0.1 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.1 = part 1 
[Fine Uploader 5.0.2] Sending PUT request for 0.1 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 1 
[Fine Uploader 5.0.2] Chunk 1 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 2097153-3145728 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.2. 
[Fine Uploader 5.0.2] Sending GET request for 0.2 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.2 = part 2 
[Fine Uploader 5.0.2] Sending PUT request for 0.2 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 2 
[Fine Uploader 5.0.2] Chunk 2 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 3145729-4194304 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.3. 
[Fine Uploader 5.0.2] Sending GET request for 0.3 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.3 = part 3 
[Fine Uploader 5.0.2] Sending PUT request for 0.3 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 3 
[Fine Uploader 5.0.2] Chunk 3 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 4194305-5242880 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.4. 
[Fine Uploader 5.0.2] Sending GET request for 0.4 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.4 = part 4 
[Fine Uploader 5.0.2] Sending PUT request for 0.4 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 4 
[Fine Uploader 5.0.2] Chunk 4 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 5242881-6291456 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.5. 
[Fine Uploader 5.0.2] Sending GET request for 0.5 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.5 = part 5 
[Fine Uploader 5.0.2] Sending PUT request for 0.5 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 5 
[Fine Uploader 5.0.2] Chunk 5 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 6291457-7340032 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.6. 
[Fine Uploader 5.0.2] Sending GET request for 0.6 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.6 = part 6 
[Fine Uploader 5.0.2] Sending PUT request for 0.6 
[Fine Uploader 5.0.2] Put Block call succeeded for 0 
[Fine Uploader 5.0.2] Chunked upload request succeeded for 0, chunk 6 
[Fine Uploader 5.0.2] Chunk 6 for file 0 uploaded successfully. 
[Fine Uploader 5.0.2] Sending chunked upload request for item 0: bytes 7340033-8388608 of 27179814 
[Fine Uploader 5.0.2] Submitting GET SAS request for a PUT REST request related to file ID 0.7. 
[Fine Uploader 5.0.2] Sending GET request for 0.7 
[Fine Uploader 5.0.2] GET SAS request succeeded. 
[Fine Uploader 5.0.2] Submitting Put Block request for 0.7 = part 7 
[Fine Uploader 5.0.2] Sending PUT request for 0.7 
PUT https://fineuploadertest.blob.core.windows.net/file//e3cac46f-87b3-474c-a9b…PyNBZRTc%3D&se=2014-06-23T22%3A55%3A08Z&sp=w&comp=block&blockid=MDAwMDc%3D net::ERR_SSL_PROTOCOL_ERROR /file//e3cac46f-87b3-474c-a9b8-5393cd2e8b1e.mp4?sv=2014-02-14&sr=b&sig=SyXr…NBZRTc%3D&se=2014-06-23T22%3A55%3A08Z&sp=w&comp=block&blockid=MDAwMDc%3D:1
[Fine Uploader 5.0.2] PUT request for 0.7 has failed - response code 0 
[Fine Uploader 5.0.2] Put Block call failed for ID 0 on part 7 
[Fine Uploader 5.0.2] Received error response:  
[Fine Uploader 5.0.2] Chunked upload request failed for 0, chunk 7 

1 个答案:

答案 0 :(得分:2)

这个问题似乎不是fineuploader的错,但似乎是SSL在Azure Blob存储上的工作方式的结果,它只允许在单个HTTPS会话中传输特定数量的数据(大约5兆在我的测试中。)

Microsoft已承认issue,但修复程序中没有ETA。我不清楚为什么这个问题只影响SSL的某些实现。

与此同时,如果您需要允许更大的文件从浏览器上传到azure blob存储,并且遇到Android或其他浏览器的问题,解决方法是:

1)如果您的用例不需要安全传输数据,请切换到非SSL(HTTP)端点。

2)不要直接上传到blob存储,而是上传到自定义端点,然后让该端点将文件复制到blob存储。这个端点托管在Azure网站,Web角色或工作者角色中,这个问题没有问题。

您可以找到有关设置传统的fineupload上传服务器here的其他信息。