允许用户将MP3上传到Amazon S3

Mar*_*ean 6 php amazon-s3

我正在一个用户可以上传播客的网站上工作.播客是MP3文件,存储在Amazon S3存储桶中.

这是正常的流量是什么?我用Google搜索了,但是任何与文件上传相关的文章都倾向于使用亚马逊客户端库,理想情况下我不想使用PHP(我使用LAMP堆栈)来上传MP3文件,因为超时,文件尺寸限制等

有没有解决的办法?

Mar*_*ean 1

经过大量谷歌搜索,并在 GitHub 存储库和 Amazon 文档上来回查找新 PHP SDK,我\xe2\x80\x99 得到了一个使用 Amazon\xe2\x80\x99s 新 PHP SDK 生成表单的解决方案字段,然后 Uploadify 实际上将文件直接上传到亚马逊,绕过我的服务器。代码看起来有点像这样:

\n\n
<?php\n$bucket = (string) $container['config']->images->amazon->bucket;\n$options = array(\n    'acl' => CannedAcl::PUBLIC_READ,\n    'Content-Type' => 'audio/mpeg',\n    'key' => 'audio/a-test-podcast.mp3',\n    'success_action_redirect' => (string) $container['config']->main->base_url . 'upload/success/',\n    'success_action_status' => 201,\n    'filename' => '^'\n);\n$postObject = new PostObject($container['amazon_s3'], $bucket, $options);\n$postObject->prepareData();\n\n$formAttributes = $postObject->getFormAttributes();\n$formInputs = $postObject->getFormInputs();\n\n$uploadPath = $formAttributes['action'];\n?>\n<script>\n    (function($) {\n        $('#podcast').uploadify({\n            'buttonClass': 'button',\n            'buttonText': 'Upload',\n            'formData': <?php echo json_encode($formInputs); ?>,\n            'fileObjName': 'file',\n            'fileTypeExts': '*.mp3',\n            'height': 36,\n            'multi': false,\n            'onUploadError': function(file, errorCode, errorMsg, errorString) {\n                console.log('onUploadError', file, errorCode, errorMsg, errorString);\n            },\n            'onUploadSuccess': function(file, data, response) {\n                console.log('onUploadSuccess', file, data, response);\n            },\n            'swf': '/assets/cms/swf/uploadify.swf',\n            'uploader': '<?php echo $uploadPath; ?>',\n            'width': 120\n        });\n    })(jQuery);\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n