アマゾンS3への直接投稿するUploadifyを使用しました
質問
誰がどのようにアマゾンS3への直接アップロードする Uploadify に使用する方法を教えてもらえます?
次のように私のコードは次のとおりです。
$('#fileInput').uploadify({
'fileDataName' : 'file',
'uploader' : 'uploadify.swf',
'script' : 'http://BUCKET-NAME-GOES-HERE.s3.amazonaws.com/',
'cancelImg' : 'cancel.png',
'method' : 'post',
'auto' : true,
'onError': function (a, b, c, d) {
alert('error '+d.type+": "+d.info + ' name: ' + c.name + ' size: ' + c.size);
},
'scriptData' : {
'AWSAccessKeyId': "KEY-GOES-HERE",
'key': "${filename}",
'acl': "public-read",
'policy': "POLICY-STRING-GOES-HERE",
'signature': "SIGNATURE-GOES-HERE",
'success_action_status': '200'
}
});
私の(符号化されていない)ポリシー文字列は次のようになります:
{
"expiration": "2100-12-01T12:00:00.000Z",
"conditions": [
{"acl": "public-read"},
{"bucket": "BUCKET-NAME-GOES-HERE"},
{"success_action_status" : 200},
["starts-with", "$filename", ""],
["starts-with", "$folder", ""],
["starts-with", "$key", ""],
["content-length-range", 1, 209715200]
]
}
上記のコードを使用すると、実際に私はその後、(どこか)をアップロードするように見えるファイルを、選択することができますが、何も私のS3バケットに現れていないとエラーがJSコンソールに返されません。
S3バケットにファイルを投稿する通常のHTMLフォームを使用すると、正常に動作します。
任意のアドバイスはありますか?
解決
このスレッドする uploadifyフォーラムます:
<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="jquery.uploadify.v2.1.0.js"></script>
<link rel="stylesheet" href="uploadify.css" type="text/css" media="screen" />
</head>
<body>
<form>
<input id="fileInput" name="fileInput" type="file" />
</form>
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
$('#fileInput').uploadify({
'fileDataName' : 'file',
'uploader' : 'uploadify.swf',
'script' : 'http://UPLOADBUCKET/',
'cancelImg' : 'cancel.png',
'auto' : true,
'onError' : function(errorObj, q, f, err) { console.log(err); },
'scriptData' : {
AWSAccessKeyId: "ACCESS_KEY",
key: "foo/${filename}",
acl: "public-read",
policy: "POLICY STRING"
signature: "SIGNATURE,
success_action_status: '200'
}
});
});
// ]]></script>
</body>
</html>
次のようにポリシー文字列の塩基である:
{ "expiration": "2100-12-01T12:00:00.000Z",
"conditions": [
{"acl": "public-read" },
{"bucket": "UPLOADBUCKET" },
{"success_action_status" : '200'},
["starts-with", "$filename", "" ],
["starts-with", "$folder", "" ],
["starts-with", "$key", "foo"],
["content-length-range", 1, 209715200]
]
}
他のヒント
私はプログレスバー作業アイブでアマゾンS3への直接アップロードを得ることができ、ここでの作業のデモを持っています。
誰もが興味を持っている場合は、それはこののためのワードプレスのプラグインを生産に取り組んでバケツの中バケツやフォルダをサポートします。
このは、そのは行わuploadify病気ポストに取り組んでカントー、SWFUploadのを使用しています。
のhttp:// WWW。 isimpledesign.co.uk/blog/amazon-s3-direct-multiple-file-upload-progress-barする
これはs3cloudに画像を保存するためのJavaコードです。 あなたがあなた自身のuploadifyスクリプトファイルを持っています(uploadify.phpのように)あなたのUploadScriptをファイルにこのコードを追加します。
AWSCredentials資格=新しいAWSCredentials(_ACCESS_KEY、 _SECRET_KEY);
log.info("oovfilepath : " + oovfilepath);
log.info("name : " + name);
S3Service s3Service = new RestS3Service(credentials);
S3Bucket s3Bucket = s3Service.createBucket(_BUCKET_NAME);
AccessControlList bucketAcl = s3Service.getBucketAcl(s3Bucket);
bucketAcl.grantPermission(GroupGrantee.ALL_USERS,
Permission.PERMISSION_READ);
InputStream input = new FileInputStream(oovfilepath);
S3Object s3Object = new S3Object(s3Bucket, name);
log.info("s3Object:" + s3Object);
s3Object.setAcl(bucketAcl);
s3Object.setDataInputStream(input);
log.info("s3Object:" + s3Object);
s3Service.putObject(s3Bucket, s3Object);