S3 chunked上传并非(始终)在Chrome中运行

时间:2013-12-03 20:30:37

标签: google-chrome amazon-s3 fine-uploader

我们最近开始使用fineuploader。测试不同平台上的不同浏览器都按预期工作。但是在启用了分块的Chrome(V31 +)测试失败(在我们的大多数测试文件上)。我们在Windows Vista,7和8.1上测试了Chrome。都具有相同的结果。

我们可以重现这个问题。只需使用Chrome(v30 +)上传大文件即可失败。如果chunking为false,它将上传。

当我们尝试S3上传示例@ findeuploader.com时,我们会得到相同的结果。

我们正在使用fineuploader 4.1.0

Chrome javascript控制台输出

XHR finished loading: "myServer/upload/sign".
[FineUploader 4.1.0] Sending part 1 of 3 for file ID 0 - abc.mp4 (5242880 bytes)
[FineUploader 4.1.0] Received response status 0 with body:
[FineUploader 4.1.0] Received response status 0 with body:
[FineUploader 4.1.0] Received response status 0 with body:
[FineUploader 4.1.0] Upload attempt for file ID 0 to S3 is complete
[FineUploader 4.1.0] 'error' is not a valid property on the server response. 
Upload ready
PUT myS3/abc.mp4?par… 2cYTjCx96l273jY.1gqFFifuLauX19eaQ.v_ixHtUIPcT7YK4jgv3Fwe12njmKYlP9FbRd9fx_  myS3/abc.mp4?partNumber…YTjCx96l273jY.1gqFFifuLauX19eaQ.v_ixHtUIPcT7YK4jgv3Fwe12njmKYlP9FbRd9fx_

网络控制台输出

sign POST 200 application/json
abc.mp4?uploads OPTIONS 200 text/plain
abc.mp4?uploads POST 200 text/xml
sign POST 200 application/json
abc.mp4?partNumber=1&uploadId=KtGZbUYtRz8qD1TpzRKq20wX8PM8wMb0ZIUAdmt_U5q2mZ3Y8z2UAR2cYTjCx96l273jY.1gqFFifuLauX19eaQ.v_ixHtUIPcT7YK4jgv3Fwe12njmKYlP9FbRd9fx_ OPTIONS 200 text/plain
abc.mp4?partNumber=1&uploadId=KtGZbUYtRz8qD1TpzRKq20wX8PM8wMb0ZIUAdmt_U5q2mZ3Y8z2UAR2cYTjCx96l273jY.1gqFFifuLauX19eaQ.v_ixHtUIPcT7YK4jgv3Fwe12njmKYlP9FbRd9fx_ PUT (failed) Pending Other

PUT失败的标题

Request URL: myS3/abc.mp4?partNumber=1&uploadId=uETmRvNAAROHscyF6rVikoJKb6ypHkB2yeepaddTLPVjSOwAu0hh2Hh9l59NQogvuB0uWGmUSy66bBh9SX6Vdnwttte8gEp2V4tozKcqBJfCz6uGqEu6EQUZc_yQklds

Request Headers
PUT myS3/abc.mp4?partNumber=1&uploadId=uETmRvNAAROHscyF6rVikoJKb6ypHkB2yeepaddTLPVjSOwAu0hh2Hh9l59NQogvuB0uWGmUSy66bBh9SX6Vdnwttte8gEp2V4tozKcqBJfCz6uGqEu6EQUZc_yQklds HTTP/1.1
Authorization: AWS myKey
Referer: myServer/test3
Origin:myServer
x-amz-date: Tue, 03 Dec 2013 19:55:30 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Content-Type:

Query String Parameters
partNumber=1&uploadId=uETmRvNAAROHscyF6rVikoJKb6ypHkB2yeepaddTLPVjSOwAu0hh2Hh9l59NQogvuB0uWGmUSy66bBh9SX6Vdnwttte8gEp2V4tozKcqBJfCz6uGqEu6EQUZc_yQklds

CORS配置

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <ExposeHeader>ETag</ExposeHeader>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

所以第一个PUT在Chrome中失败但我不知道为什么。

奇怪的是,我们的(30多个)测试文件中有2个(400M +视频)上传没有任何问题。

任何有关如何调试此问题的想法或线索?

1 个答案:

答案 0 :(得分:0)

您的日志消息表明已收到回复,但该回复完全为空且状态代码为0

[FineUploader 4.1.0] Received response status 0 with body:

如果确实如此,则存在网络问题。

另外,请确保没有任何扩展程序(例如,HTTPS Everywhere和Adblock)摆弄网络流量。