読者です 読者をやめる 読者になる 読者になる

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を使ってみよう。