Javascript 将分块文件直接上载到AmazonS3
我正在寻找任何直接上传到AmazonS3的例子,这些例子都是分块直接上传到AmazonS3,而不需要任何服务器端处理(除了签署请求之外) 我已经研究了许多选项,到目前为止,所有的示例要么只是处理来自服务器的分块,要么只是作为一个put从浏览器发送到s3,要么都太旧了 最大的希望是Plupload,但我找不到任何将大文件分割成块的文档,至少在amazon示例中找不到 最终目标是在5秒内将一个500mb的文件发送到s3。使用php中的服务器,我可以获得接近10秒的时间,但客户端希望完全避免服务器处理,直接转到s3,因此这些是我必须遵守的规则 我发现Amazon文档非常复杂,很难理解。有没有人知道将浏览器分块到s3的完整示例 Plupload设置的基本思想:Javascript 将分块文件直接上载到AmazonS3,javascript,jquery,amazon-s3,plupload,chunking,Javascript,Jquery,Amazon S3,Plupload,Chunking,我正在寻找任何直接上传到AmazonS3的例子,这些例子都是分块直接上传到AmazonS3,而不需要任何服务器端处理(除了签署请求之外) 我已经研究了许多选项,到目前为止,所有的示例要么只是处理来自服务器的分块,要么只是作为一个put从浏览器发送到s3,要么都太旧了 最大的希望是Plupload,但我找不到任何将大文件分割成块的文档,至少在amazon示例中找不到 最终目标是在5秒内将一个500mb的文件发送到s3。使用php中的服务器,我可以获得接近10秒的时间,但客户端希望完全避免服务器处理
$("#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'
});
$(“#上传器”).plupload({
运行时:“html5、flash、silverlight”,
网址:'http://.s3.amazonaws.com/',
多部分:正确,
多部分参数:{
'key':'${filename}',//将filename用作键
'Filename':'${Filename}',//添加此项以保持运行时的一致性
“acl”:“公共读取”,
“内容类型”:“二进制/八位字节流”,
“AWSAccessKeyId”:“,
“政策”:“,
“签名”:“,
“多个队列”:True,
},
文件\数据\名称:“文件”,
过滤器:{
//最大文件大小(显然不是每个块)
最大文件大小:“5mb”,
},
flash_swf_url:“../js/Moxie.swf”,
silverlight_xap_url:“../js/Moxie.xap”
});
似乎multipart不是多个块,但可能是多个文件的总和。不确定,我只需要寄一份
非常感谢您的任何输入。因此,您只需正确配置即可:
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
});
上面配置的最后两行将设置分块。只是为了澄清。。。您希望从客户端(用户)计算机还是从服务器将文件发送到S3?如果是后者,您是否查看过AWS SDK for PHP中的?它支持从客户端进行多部分上传。标准的AWS库直接处理服务器传输,但不方便地掩盖了来自客户端的分块。或者?后者使用。是的,我看过亚马逊的文档,我在帖子中提到的enzam链接已经不起作用了。我目前正在使用jquery文件库对此进行研究:-但是我没有看到任何并发传输的证据。它是分块的,只是在单个文件中发送,而不是在并发批处理中。这个问题已经过时,不再需要了。客户带着别的东西去了。但是,如果您想用一个好的代码片段更新答案——以防链接失效——我可以接受添加的应答代码片段。见上文。