Php 使用PlUpload和过期的Amazon S3链接将文件上载到Amazon

Php 使用PlUpload和过期的Amazon S3链接将文件上载到Amazon,php,amazon-s3,file-upload,plupload,Php,Amazon S3,File Upload,Plupload,我让plupload使用示例代码直接工作到AmazonS3。我使用临时凭证获得了许可证 现在我需要生成即将过期的AmazonS3链接,使用这些临时凭证需要实现Plupload。ie我需要混合上面提到的两种情况,所以我生成url并将其作为url放在下面的代码中 <script type="text/javascript"> $(function() { $("#uploader").plupload({ runtimes : 'flash,silverlight', u

我让plupload使用示例代码直接工作到AmazonS3。我使用临时凭证获得了许可证

现在我需要生成即将过期的AmazonS3链接,使用这些临时凭证需要实现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>

$(函数(){
$(“#上传器”).plupload({
运行时:“flash,silverlight”,
url:“临时url”,
最大文件大小:“10mb”,
多部分:正确,
多部分参数:{
“key”:“${filename}”,
“Filename”:“${Filename}”,
“acl”:“公共读取”,
“内容类型”:“图像/jpeg”,
“成功行动状态”:“201”
},
文件\数据\名称:“文件”,
多个_队列:正确,
过滤器:[
{标题:“JPEG文件”,扩展名:“jpg”}
],
flash_swf_url:“../../js/plupload.flash.swf”,
silverlight_xap_url:“../js/plupload.silverlight.xap”
});
});
生成过期的AmazonS3链接

<?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 = "PUT\n\n$mimeType\n$expires\n$amzHeaders\n$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

我的参考链接是


我的代码中有什么错误???

检查您的策略,可能它设置不正确,您正在发送“额外输入”。尝试使用浏览器控制台并切换到网络面板-找到向amazon发出的http请求并检查响应,它将显示错误。

检查您的策略,可能它设置不正确,您正在发送“额外输入”。尝试使用浏览器的控制台并切换到网络面板-查找向amazon发出的http请求并检查响应,它将显示错误