Fine Uploader S3,大文件,ERR_NAME_NOT_RESOLVED
Fine Uploader S3, Large files, ERR_NAME_NOT_RESOLVED
我正在使用 Fine Uploader 直接上传到 S3。它适用于小文件,但任何大文件,如 6GB,都会在 javascript 控制台中导致以下错误:
screen shot of javascript Err_name_not_resolved
我在这里上传一个名为“6gb”的文件。
这是服务器日志(Ruby 在 Rails 上)。第一次请求签名,上传part#1时:
Started POST "/signature" for 192.168.188.129 at 2016-01-31 00:51:12 +0000
Processing by UploadsController#signature as JSON
Parameters: {"headers"=>"PUT\n\n\n\nx-amz-date:Sun, 31 Jan 2016 00:51:14 GMT\n/bv-deliverables/uploadsFolder/7c54325c-1db6-4d66-a31f-ceecb3c4ee2a.6gb?partNumber=1&uploadId=AD7mVbSzuhyC9JhgmZVu7dGEr5mJuEh8EpZTmx4Tl5M6r3ki6YDJvBqLfkDzFLQJGBpKGpzbwC8uPo7h3JGwQA--", "upload"=>{}}
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
每个部分重复此 POST 到 /signature,直到第 133 部分,其中 retry.gif 被加载,javascript 控制台中出现错误。
Started POST "/signature" for 192.168.188.129 at 2016-01-31 01:34:36 +0000
Processing by UploadsController#signature as JSON
Parameters: {"headers"=>"PUT\n\n\n\nx-amz-date:Sun, 31 Jan 2016 01:34:37 GMT\n/bv-deliverables/uploadsFolder/7c54325c-1db6-4d66-a31f-ceecb3c4ee2a.6gb?partNumber=133&uploadId=AD7mVbSzuhyC9JhgmZVu7dGEr5mJuEh8EpZTmx4Tl5M6r3ki6YDJvBqLfkDzFLQJGBpKGpzbwC8uPo7h3JGwQA--", "upload"=>{}}
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
Started GET "/assets/retry.gif" for 192.168.188.129 at 2016-01-31 01:35:16 +0000
我相信我在 header 上签名是正确的,因为它似乎一直有效到那部分。
我的上传速度大约是每秒 2 兆。
这是我的 AWS 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>
这是我的好上传者javascript:
$('#fine-uploader-s3').fineUploaderS3({
template: 'qq-template-s3',
request: {
endpoint: "https://s3.amazonaws.com/bv-deliverables",
accessKey: "AKIAILA4KWEGIGGBAL5Q"
},
signature: {
endpoint: "signature",
customHeaders: {"X-CSRF-Token":"<%= form_authenticity_token %>"}
},
uploadSuccess: {
endpoint: "create",
customHeaders: {"X-CSRF-Token":"<%= form_authenticity_token %>"},
params: {
isBrowserPreviewCapable: qq.supportedFeatures.imagePreviews
}
},
iframeSupport: {
localBlankPagePath: "/server/success.html"
},
cors: {
expected: true
},
chunking: {
enabled: true
},
resume: {
enabled: true
},
deleteFile: {
enabled: false
},
validation: {
itemLimit: 5,
sizeLimit: 107374182400
},
objectProperties: {
reducedRedundancy: true,
key: function (fileId) {
var filename = $('#fine-uploader-s3').fineUploader('getName', fileId);
var uuid = $('#fine-uploader-s3').fineUploader('getUuid', fileId);
console.log(fileId);
var ext = filename.substr(filename.lastIndexOf('.') + 1);
return 'uploadsFolder/' + uuid + '.' + ext;
}
},
callbacks: {
onComplete: function(id, name, response) {
var previewLink = qq(this.getItemByFileId(id)).getByClass('preview-link')[0];
location.reload();
if (response.success) {
previewLink.setAttribute("href", response.tempLink)
}
}
}
});
Re-adding失败的文件似乎在失败的地方继续上传。
同样,它可以完美处理小文件(如 15KB)和较小的多部分文件(如 10MB),但当我尝试上传 6GB 的大文件时出现错误。
这显然是一个网络问题,超出了 Fine Uploader 的控制范围。 auto retry feature, if enabled, should attempt to resume automatically. Failing that, you can manually retry the upload using the retry API method,或者可以通过 Fine Uploader UI 启用的重试按钮。
我正在使用 Fine Uploader 直接上传到 S3。它适用于小文件,但任何大文件,如 6GB,都会在 javascript 控制台中导致以下错误: screen shot of javascript Err_name_not_resolved
我在这里上传一个名为“6gb”的文件。
这是服务器日志(Ruby 在 Rails 上)。第一次请求签名,上传part#1时:
Started POST "/signature" for 192.168.188.129 at 2016-01-31 00:51:12 +0000
Processing by UploadsController#signature as JSON
Parameters: {"headers"=>"PUT\n\n\n\nx-amz-date:Sun, 31 Jan 2016 00:51:14 GMT\n/bv-deliverables/uploadsFolder/7c54325c-1db6-4d66-a31f-ceecb3c4ee2a.6gb?partNumber=1&uploadId=AD7mVbSzuhyC9JhgmZVu7dGEr5mJuEh8EpZTmx4Tl5M6r3ki6YDJvBqLfkDzFLQJGBpKGpzbwC8uPo7h3JGwQA--", "upload"=>{}}
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
每个部分重复此 POST 到 /signature,直到第 133 部分,其中 retry.gif 被加载,javascript 控制台中出现错误。
Started POST "/signature" for 192.168.188.129 at 2016-01-31 01:34:36 +0000
Processing by UploadsController#signature as JSON
Parameters: {"headers"=>"PUT\n\n\n\nx-amz-date:Sun, 31 Jan 2016 01:34:37 GMT\n/bv-deliverables/uploadsFolder/7c54325c-1db6-4d66-a31f-ceecb3c4ee2a.6gb?partNumber=133&uploadId=AD7mVbSzuhyC9JhgmZVu7dGEr5mJuEh8EpZTmx4Tl5M6r3ki6YDJvBqLfkDzFLQJGBpKGpzbwC8uPo7h3JGwQA--", "upload"=>{}}
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
Started GET "/assets/retry.gif" for 192.168.188.129 at 2016-01-31 01:35:16 +0000
我相信我在 header 上签名是正确的,因为它似乎一直有效到那部分。
我的上传速度大约是每秒 2 兆。
这是我的 AWS 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>
这是我的好上传者javascript:
$('#fine-uploader-s3').fineUploaderS3({
template: 'qq-template-s3',
request: {
endpoint: "https://s3.amazonaws.com/bv-deliverables",
accessKey: "AKIAILA4KWEGIGGBAL5Q"
},
signature: {
endpoint: "signature",
customHeaders: {"X-CSRF-Token":"<%= form_authenticity_token %>"}
},
uploadSuccess: {
endpoint: "create",
customHeaders: {"X-CSRF-Token":"<%= form_authenticity_token %>"},
params: {
isBrowserPreviewCapable: qq.supportedFeatures.imagePreviews
}
},
iframeSupport: {
localBlankPagePath: "/server/success.html"
},
cors: {
expected: true
},
chunking: {
enabled: true
},
resume: {
enabled: true
},
deleteFile: {
enabled: false
},
validation: {
itemLimit: 5,
sizeLimit: 107374182400
},
objectProperties: {
reducedRedundancy: true,
key: function (fileId) {
var filename = $('#fine-uploader-s3').fineUploader('getName', fileId);
var uuid = $('#fine-uploader-s3').fineUploader('getUuid', fileId);
console.log(fileId);
var ext = filename.substr(filename.lastIndexOf('.') + 1);
return 'uploadsFolder/' + uuid + '.' + ext;
}
},
callbacks: {
onComplete: function(id, name, response) {
var previewLink = qq(this.getItemByFileId(id)).getByClass('preview-link')[0];
location.reload();
if (response.success) {
previewLink.setAttribute("href", response.tempLink)
}
}
}
});
Re-adding失败的文件似乎在失败的地方继续上传。
同样,它可以完美处理小文件(如 15KB)和较小的多部分文件(如 10MB),但当我尝试上传 6GB 的大文件时出现错误。
这显然是一个网络问题,超出了 Fine Uploader 的控制范围。 auto retry feature, if enabled, should attempt to resume automatically. Failing that, you can manually retry the upload using the retry API method,或者可以通过 Fine Uploader UI 启用的重试按钮。