【发布时间】:2016-03-11 18:30:28
【问题描述】:
我正在寻找任何直接上传到 Amazon s3 的直接示例,无需任何服务器端处理(除了签署请求)
我已经研究了许多选项,到目前为止,所有示例要么只是解决来自服务器的分块,要么只是从浏览器发送到 s3 作为单个放置,或者它们太旧了just don't work anymore.
最大的希望是 Plupload,但我找不到任何将大文件分成块的文档,至少在亚马逊示例中没有。
最终目标是在 5 秒内将 500mb 的文件发送到 s3。在 php 中使用服务器我可以接近 10 秒,但客户端希望完全避免服务器处理并直接进入 s3,所以这些是我受约束的规则。
我发现亚马逊文档非常复杂且难以理解。有没有人知道浏览器分块到 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 不是多个块,而是总共多个文件。不知道,我只需要发送一个。
感谢任何输入。
【问题讨论】:
-
澄清一下...您希望将文件从客户端(用户)计算机还是从服务器发送到 S3?如果是后者,您是否查看过 AWS SDK for PHP 中的
Transferclass?支持分段上传。 -
来自客户端。标准 AWS 库直接开箱即用地处理服务器传输,但不方便地掩盖了来自客户端的分块。
-
是的,我已经阅读了亚马逊文档,并且我在帖子中提到的 enzam 链接不再有效。我目前正在研究使用 jquery 文件库的这个:github.com/eddturtle/direct-upload-s3-signaturev4 - 但是我没有看到任何并发传输的证据。它是分块的,只发送单个文件而不是并发批次
标签: javascript jquery amazon-s3 plupload chunking