php - 使用PlUpload上传文件到 Amazon,并将 Amazon S3链接过期

  显示原文与译文双语对照的内容

I 使用plupload直接向AmazonS3工作,这个示例 code.I 使用临时凭证将直接浏览器安装到S3上传服务器上。

现在,我需要花费生成过期 Amazon S3链接并使用这些临时凭证实现 Plupload 。 IE 我需要将提到的两个案例混合在一起,我生成url并将它作为下列代码的url 。


<script type="text/javascript">
$(function() {
$("#uploader").plupload({
 runtimes : 'flash,silverlight',
 url : 'TEMPORARY URL',
 max_file_size : '10mb',

 multipart: true,
 multipart_params: {
 'key': '${filename}', 
 'Filename': '${filename}',
 'acl': 'public-read',
 'Content-Type': 'image/jpeg',
 'success_action_status': '201'
 },
 file_data_name: 'file',
 multiple_queues: true,
 filters : [
 {title :"JPEG files", extensions :"jpg"}
 ],
 flash_swf_url : '../../js/plupload.flash.swf',
 silverlight_xap_url : '../../js/plupload.silverlight.xap'
});
});
</script>

生成过期的Amazon S3链接


<?php 
$S3_KEY='S3 Key Here';
$S3_SECRET='S3 Secret Here';
$S3_BUCKET='/uploadtestbucket';

$EXPIRE_TIME=(60 * 5);//5 minutes
$S3_URL='http://s3.amazonaws.com';

$objectName='/'. $_GET['name'];

$mimeType=$_GET['type'];
$expires = time() + $EXPIRE_TIME;
$amzHeaders="x-amz-acl:public-read";
$stringToSign ="PUTnn$mimeTypen$expiresn$amzHeadersn$S3_BUCKET$objectName";
$sig = urlencode(base64_encode(hash_hmac('sha1', $stringToSign, $S3_SECRET, true)));

$url = urlencode("$S3_URL$S3_BUCKET$objectName? AWSAccessKeyId=$S3_KEY&Expires=$expires&Signature=$sig");

echo $url;
?>

但是我收到了这个错误

IO错误。错误 #2032

我的参考链接是

代码中的错误是什么?

时间: 作者:

检查策略,可能是没有正确设置,你正在发送"额外输入"。 试着使用浏览器和 switch的控制台- 找到对amazon的http请求并检查响应,它会显示错误消息。

作者:
...