将分块文件直接上传到 Amazon s3
Uploading chunked files directly to Amazon s3
我正在寻找任何关于在没有任何服务器端处理(除了签署请求)的情况下直接分块上传到 Amazon s3 的直接示例
我研究了很多选项,到目前为止,所有示例要么仅解决来自服务器的分块问题,要么仅作为单个 put 从浏览器发送到 s3,或者太旧了 just don't work anymore.
最大的希望是 Plupload,但我找不到任何将大文件拆分成块的文档,至少在亚马逊示例中找不到。
最终目标是在 5 秒内将 500mb 的文件发送到 s3。在 php 中使用服务器我可以接近 10 秒,但客户端希望完全避免服务器处理并直接进入 s3,所以这些是我必须遵守的规则。
我发现 Amazon 文档非常复杂且难以理解。有没有人知道浏览器分块到 s3 的完整示例?
Plupload设置的基本思路:
$("#uploader").plupload({
runtimes : 'html5,flash,silverlight',
url : 'http://<?php echo $bucket; ?>.s3.amazonaws.com/',
multipart: true,
multipart_params: {
'key': '${filename}', // use filename as a key
'Filename': '${filename}', // adding this to keep consistency across the runtimes
'acl': 'public-read',
'Content-Type': 'Binary/Octet-Stream',
'AWSAccessKeyId' : '<?php echo $accessKeyId; ?>',
'policy': '<?php echo $policy; ?>',
'signature': '<?php echo $signature; ?>',
'Multiple_queues': True,
},
file_data_name: 'file',
filters : {
// Maximum file size (apparently not per chunk)
max_file_size : '5mb',
},
flash_swf_url : '../js/Moxie.swf',
silverlight_xap_url : '../js/Moxie.xap'
});
multipart 似乎不是多个块,而是多个文件的总和。不确定,我只需要发送一个。
欢迎任何意见。
Plupload does support chunked uploads 所以您需要做的就是正确配置它:
var uploader = new plupload.Uploader({
browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself
url: 'upload.php',
chunk_size: '200kb',
max_retries: 3
});
以上配置的最后两行将设置分块。
我正在寻找任何关于在没有任何服务器端处理(除了签署请求)的情况下直接分块上传到 Amazon s3 的直接示例
我研究了很多选项,到目前为止,所有示例要么仅解决来自服务器的分块问题,要么仅作为单个 put 从浏览器发送到 s3,或者太旧了 just don't work anymore.
最大的希望是 Plupload,但我找不到任何将大文件拆分成块的文档,至少在亚马逊示例中找不到。
最终目标是在 5 秒内将 500mb 的文件发送到 s3。在 php 中使用服务器我可以接近 10 秒,但客户端希望完全避免服务器处理并直接进入 s3,所以这些是我必须遵守的规则。
我发现 Amazon 文档非常复杂且难以理解。有没有人知道浏览器分块到 s3 的完整示例?
Plupload设置的基本思路:
$("#uploader").plupload({
runtimes : 'html5,flash,silverlight',
url : 'http://<?php echo $bucket; ?>.s3.amazonaws.com/',
multipart: true,
multipart_params: {
'key': '${filename}', // use filename as a key
'Filename': '${filename}', // adding this to keep consistency across the runtimes
'acl': 'public-read',
'Content-Type': 'Binary/Octet-Stream',
'AWSAccessKeyId' : '<?php echo $accessKeyId; ?>',
'policy': '<?php echo $policy; ?>',
'signature': '<?php echo $signature; ?>',
'Multiple_queues': True,
},
file_data_name: 'file',
filters : {
// Maximum file size (apparently not per chunk)
max_file_size : '5mb',
},
flash_swf_url : '../js/Moxie.swf',
silverlight_xap_url : '../js/Moxie.xap'
});
multipart 似乎不是多个块,而是多个文件的总和。不确定,我只需要发送一个。
欢迎任何意见。
Plupload does support chunked uploads 所以您需要做的就是正确配置它:
var uploader = new plupload.Uploader({
browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself
url: 'upload.php',
chunk_size: '200kb',
max_retries: 3
});
以上配置的最后两行将设置分块。