我正在尝试让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
答案 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的其他信息。