我正在寻找上传到Amazon s3的直接示例,可以分块上传而无需任何服务器端处理(除了签署请求)。
我已经研究了许多选项,到目前为止,所有示例都只涉及从服务器分块或仅将单个put发送到浏览器中的s3,或者太旧了不再适用。
最高的希望是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不是指多个块,而是可能指总共多个文件。 不确定,我只需要发送一个。
感谢任何意见。
Transfer
类?它支持多部分上传。 - John Rotenstein