amazonのEC2とS3でちょっとだけ遊んでみた
とくに書くこともないんだけれども。
最近RESTとかお勉強してたり、なにかとクラウドとかが話題なのでamazon EC2とS3を触ってみました。
ここの通りやったら出来た。
http://gihyo.jp/dev/serial/01/amazon_ec2
普通に簡単にやったら出来ました。って作ったはいいけど特に今はやりたいことも思いつかず。
とうことでS3のサンプルはRubyが多いのですが、Javaも普通にありますよという紹介でも。
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=132
package org.yamkazu.s3; import java.util.Arrays; import java.util.Map; import java.util.TreeMap; import com.amazon.s3.AWSAuthConnection; import com.amazon.s3.QueryStringAuthGenerator; import com.amazon.s3.S3Object; public class Hoge { static final String awsAccessKeyId = "xxxx"; // ユーザーにあわせて書き換える static final String awsSecretAccessKey = "xxxxxx"; // ユーザーにあわせて書き換える static final String bucketName = "yamkazu"; // 適当にバケット名を指定 static final String keyName = "test-file"; // 適当なテストファイル名 public static void main(String args[]) throws Exception { AWSAuthConnection conn = new AWSAuthConnection(awsAccessKeyId, awsSecretAccessKey); QueryStringAuthGenerator generator = new QueryStringAuthGenerator( awsAccessKeyId, awsSecretAccessKey); // バケットの存在チェック if (!conn.checkBucketExists(bucketName)) { // バケットの作成開始 System.out.println("----- creating bucket -----"); System.out.println(conn.createBucket(bucketName, AWSAuthConnection.LOCATION_DEFAULT, null).connection.getResponseMessage()); } // バケットの一覧を表示 System.out.println("----- listing bucket -----"); System.out.println(conn.listBucket(bucketName, null, null, null, null).entries); // オブジェクトをPUT System.out.println("----- putting object -----"); S3Object object = new S3Object("this is a test".getBytes(), null); Map headers = new TreeMap(); headers.put("Content-Type", Arrays.asList(new String[] { "text/plain" })); System.out.println(conn.put(bucketName, keyName, object, headers).connection.getResponseMessage()); // バケットの一覧を表示 System.out.println("----- listing bucket -----"); System.out.println(conn.listBucket(bucketName, null, null, null, null).entries); // オブジェクトをGET System.out.println("----- getting object -----"); System.out.println(new String(conn.get(bucketName, keyName, null).object.data)); } }
ライブラリの中にサンプルが入ってるので、それをみれば大体わかると思います。
なにか使い所を思いついたらEC2、S3を使ってみよう。