2013-01-02 2 views
1

this 샘플 코드로 Amazon S3에 직접 작업하는 plupload가 있습니다. 임시 자격 증명을 사용하여 Direct Browser to S3 Upload을 얻었습니다.PlUpload 및 만료 Amazon S3 링크를 사용하여 파일을 Amazon에 업로드

는 지금은 아마존 S3 링크을 만료하고 그 임시 보안이 Plupload을 구현 필요 사용하여 생성 해야합니다. 즉, 위의 두 경우를 혼합해야합니다. 그래서 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> 

<?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; 
?> 

아마존 S3 링크

을 만료 생성하지만이 오류를

IO 오류를 얻고있다. 오류 # 2032

내 참조 링크는 내 코드에서 실수가 무엇

있다?

답변

1

정책을 확인하십시오. 제대로 설정되지 않았으며 "추가 입력 사항"을 보내고 있습니다. 브라우저의 콘솔을 사용해보십시오. 네트워크 패널로 전환하십시오. 아마존에 대한 http 요청을 찾고 응답을 확인하십시오. 그러면 오류가 표시됩니다.