diff options
Diffstat (limited to 'sites/all/libraries/plupload/examples/jquery/s3.php')
-rw-r--r-- | sites/all/libraries/plupload/examples/jquery/s3.php | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/sites/all/libraries/plupload/examples/jquery/s3.php b/sites/all/libraries/plupload/examples/jquery/s3.php new file mode 100644 index 000000000..a46f1dbc6 --- /dev/null +++ b/sites/all/libraries/plupload/examples/jquery/s3.php @@ -0,0 +1,125 @@ +<?php +/* +In order to upload files to S3 using Flash runtime, one should start by placing crossdomain.xml into the bucket. +crossdomain.xml can be as simple as this: + +<?xml version="1.0"?> +<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> +<cross-domain-policy> +<allow-access-from domain="*" secure="false" /> +</cross-domain-policy> + +In our tests SilverLight didn't require anything special and worked with this configuration just fine. It may fail back +to the same crossdomain.xml as last resort. + +!!!Important!!! Plupload UI Widget here, is used only for demo purposes and is not required for uploading to S3. +*/ + +// important variables that will be used throughout this example +$bucket = 'BUCKET'; + +// these can be found on your Account page, under Security Credentials > Access Keys +$accessKeyId = 'ACCESS_KEY_ID'; +$secret = 'SECRET_ACCESS_KEY'; + +// prepare policy +$policy = base64_encode(json_encode(array( + // ISO 8601 - date('c'); generates uncompatible date, so better do it manually + 'expiration' => date('Y-m-d\TH:i:s.000\Z', strtotime('+1 day')), + 'conditions' => array( + array('bucket' => $bucket), + array('acl' => 'public-read'), + array('starts-with', '$key', ''), + // for demo purposes we are accepting only images + array('starts-with', '$Content-Type', 'image/'), + // Plupload internally adds name field, so we need to mention it here + array('starts-with', '$name', ''), + // One more field to take into account: Filename - gets silently sent by FileReference.upload() in Flash + // http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTFlash.html + array('starts-with', '$Filename', ''), + ) +))); + +// sign policy +$signature = base64_encode(hash_hmac('sha1', $policy, $secret, true)); + +?> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> + +<title>Plupload to Amazon S3 Example</title> + +<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" /> +<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> +<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> + +<!-- Load plupload and all it's runtimes and finally the UI widget --> +<link rel="stylesheet" href="../../js/jquery.ui.plupload/css/jquery.ui.plupload.css" type="text/css" /> + + +<!-- production --> +<script type="text/javascript" src="../../js/plupload.full.min.js"></script> +<script type="text/javascript" src="../../js/jquery.ui.plupload/jquery.ui.plupload.js"></script> + +<!-- debug +<script type="text/javascript" src="../../js/moxie.js"></script> +<script type="text/javascript" src="../../js/plupload.dev.js"></script> +<script type="text/javascript" src="../../js/jquery.ui.plupload/jquery.ui.plupload.js"></script> +--> + +</head> +<body style="font: 13px Verdana; background: #eee; color: #333"> + +<h1>Plupload to Amazon S3 Example</h1> + +<div id="uploader"> + <p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p> +</div> + +<script type="text/javascript"> +// Convert divs to queue widgets when the DOM is ready +$(function() { + $("#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': 'image/jpeg', + 'AWSAccessKeyId' : '<?php echo $accessKeyId; ?>', + 'policy': '<?php echo $policy; ?>', + 'signature': '<?php echo $signature; ?>' + }, + + // !!!Important!!! + // this is not recommended with S3, since it will force Flash runtime into the mode, with no progress indication + //resize : {width : 800, height : 600, quality : 60}, // Resize images on clientside, if possible + + // optional, but better be specified directly + file_data_name: 'file', + + filters : { + // Maximum file size + max_file_size : '10mb', + // Specify what files to browse for + mime_types: [ + {title : "Image files", extensions : "jpg,jpeg"} + ] + }, + + // Flash settings + flash_swf_url : '../../js/Moxie.swf', + + // Silverlight settings + silverlight_xap_url : '../../js/Moxie.xap' + }); +}); +</script> + +</body> +</html> |