2014年2月23日日曜日

AWS Android SDK

AWSのAndroid SDKを使ってみたので、少し記述しておきます。

まずAndroidから使うためには、ACCESS KEYを取得する必要が
あります。ACCESS KEYを取得するには、IAMというサービスで
ユーザを作ることで可能となります。














ここでユーザを作成した時に、必要なパーミッションを追加して下さい。
今回は、S3に読み書きしたいので、"AmazonS3FullAccess"を使いました。

ACCESS KEYを使った後はAmazonのSDKを取得するのですが、
これはAmazonのサイトから取得して下さい。

http://aws.amazon.com/jp/sdkforandroid/

アプリ側にはJarを追加するだけです。

今回は、新しく追加されたTransferManagerについて記述しておきます。
TransferManagerはS3の操作でよくやる、UploadとDownloadを簡単に
やってくれるものです。

http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/

例えば以下のコードでDownloadが可能です。

public void download(final String bucketName, final String key, final String path,
    final long size) {
    Runnable task = new Runnable() {
        @Override
        public void run() {
            try {
                File file = new File(path);
                Download download = mTransferManager.download(bucketName, key, file);
                TransferProgressListener progressListener = new TransferProgressListener(
                mNotifier, size);
                download.addProgressListener(progressListener);
                download.waitForCompletion();
                download.removeProgressListener(progressListener);
                mNotifier.notifyDownloaded(path);
            } catch (Exception e) {
                mNotifier.notifyError(e.getMessage());
            }
        }
    };
    mExecutor.submit(task);
}
}