Cloudfrontでストリーミング

設定自体はManagement Consoleで簡単にできる。
確認はJW Playerで。
http://www.longtailvideo.com/jw-player/wizard

悩んだのはURLがどうなるのか。
色々試した結果、こうなった。

rtmp://XXXXXXXXXXXX.cloudfront.net/cfx/st/mp4:movies/sample.mp4


cloudfront.netの後ろに/cfx/stがつく。
S3のbucketに作ったディレクトリ名(movies)/ファイル名(sample.mp4)
更にmp4の場合、ディレクトリ名を含めたファイル名の前につける。

PROCEDURE identity?

SAStrutsMySQLの組み合わせ。
insertしようとするとエラーになった。
PROCEDURE [DB名].identity が見つからない、と。
使ってるテーブルの主キーはAutoIncrement。
Entityクラスの対応するプロパティには@GeneratedValueを設定している。

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;



で、結論としては。
s2jdbc.diconの設定が抜けて(コメントになって)ましたというオチでした。

<property name="dialect">mysqlDialect</property>

AWS S3 ファイルを公開する

S3に置いたファイルをhttp経由で参照可能にしたいと思い、コマンドを探したが見つけられず。
結局 SDK for PHP をインストールした。
http://aws.amazon.com/jp/sdkforphp/

入門ガイドを見つつ、今回はpearでインストール。
http://aws.amazon.com/articles/4261?_encoding=UTF8&jiveRedirect=1

こんな感じで設定出来る。

<?php
require_once '../sdk.class.php';

$bucket = 'hogebucket';

$s3 = new AmazonS3();

$policy = new CFPolicy($s3, array(
 'Version' => '2008-10-17',
 'Statement' => array(
 'Sid' => 'AddPerm',
 'Effect' => 'Allow',
 'Principal' => array('AWS' => '*'),
 'Action' => array('s3:GetObject'),
 'Resource' => array('arn:aws:s3:::'. $bucket. '/*')
)
));

$res = $s3->set_bucket_policy($bucket, $policy);
var_dump($res);


2013/8/2追記
管理画面での設定方法はこちら

EC2でS3をマウントする方法

こちらを参考にしました。

yum install fuse*
modprobe fuse
cd /usr/local/src/
wget http://s3fs.googlecode.com/files/s3fs-r191-source.tar.gz
tar zxvf s3fs-r191-source.tar.gz
cd s3fs
yum install curl*
yum install libxml2*
make
make install
mkdir /mnt/s3drive
s3fs bucketname -o accessKeyId=XXXXXXXXXXXXXXXXXXXX -o secretAccessKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -o allow_other /mnt/s3drive*1

*1:keyはAWSの管理画面で確認できる