我正在尝试让FineUploader直接上载到Azure Blob存储。
我按照说明设置了一个演示页面,上面有上传程序,为CORS配置了我的blob存储帐户,并设置了一台SAS服务器。在桌面浏览器和我的iOS设备上,一切似乎都像预期的那样工作,但我的安卓设备上的上传似乎总是在8MB左右停滞不前。
有时摊位永远不会恢复,有时它似乎可以恢复,上传另一个~8兆,然后再次摊位。在任何一种情况下,它似乎在一个PUT上停留了2.2分钟。我不确定这个持续时间是否有任何意义,但到目前为止在我的测试中它是非常一致的。
我试过禁用和启用分块,大小为4MB,据我所知,它似乎对结果没有重大影响。
我在2个wifi网络和4g网络上尝试了2个Android设备(4.3和4.4),结果相同。
我有与上传程序嵌入在它的网页暴露在以下网址:
http://fineuploadertest.blob.core.windows.net/cdn/index.htm (4兆字节)
index2.htm (禁用分块)和index3.htm (1兆块)位于同一目录中,如果您想要检查它们。
在这一点上,我的想法已经用完了,有没有其他人遇到过这个问题,或者有什么其他的想法可以让我尝试一下?
下面是我通过Chrome远程调试获得的一些调试输出,用于尝试(使用分块)失败。
put 1-7在2-4秒内成功,put 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 发布于 2014-06-25 00:48:09
这个问题似乎不是fineuploader的错,而是SSL在Azure Blob Storage上的工作方式的结果,它只允许在单个HTTPS会话中传输特定数量的数据(在我的测试中大约是5兆)。
微软已经承认了issue,但目前还没有关于修复的预计时间。我不清楚为什么这个问题只影响SSL的某些实现。
同时,如果你需要允许更大的文件从浏览器上传到azure blob存储,并且在Android或其他浏览器上遇到问题,解决方法是:
1)如果您的用例不需要安全地传输数据,请切换到非SSL (HTTP)端点。
2)不要直接上传到blob存储,而是上传到自定义端点,然后让该端点将文件复制到blob存储。此终结点托管在Azure网站、Web角色或辅助角色中是可以的,此问题不会影响它们。
你可以找到关于设置传统的fineupload上传服务器here的更多信息。
https://stackoverflow.com/questions/24375870
复制相似问题