2011年11月19日土曜日

Google App EngineでのBlob使用方法

Blobのアップロード、キーの取得方法はここを参考にすれば十分です

サーブレットなどのプログラム内で保存されたBlobを利用するためには、複数の方法があります。

Blobのファイル情報を利用する方法
この場合はBlobInfoクラスを使用します。
//BlobInfoを読み込むクラス
BlobInfoFactory bf = new BlobInfoFactory();←引数が必要かもしれない
//BlobKeyを指定してBlobInfoを呼び出し
BlobInfo info = bf.loadBlobInfo(blobKey);
//Blobのファイル名
String fileName = info.getFilename();
//Blobのアップロード日
Date date = getCreation();
//Blobのファイルサイズ
long fileSize = getSize();


Blobのファイル自体を取得する方法
Blobに格納されているファイル自体を操作する場合は、BlobstoreInputStreamクラスを使用します。
例えばBlobとして保存されたテキストファイルを読む場合は以下のようにします。
BlobstoreInputStreamはInputStreamを継承しているので通常のファイル操作と同じように利用することができると思います。ファイル操作に関しては、こちらを参照することをお勧めします。
BlobstoreInputStream bis = new BlobstoreInputStream(blobKey);
BufferedReader br = new BufferedReader(new InputStreamReader(br));
//文字列を取得
String str = br.readLine();   


Blobの削除
Blobの削除には、BlobstoreServiceのdeleteメソッドを使用します。
//Blobを操作するインターフェース
BlobstoreService bs = BlobstoreServiceFactory.getBlobstoreService();
//Blobを可変長引数を使って削除
bs.delete(blobKey1, blobKey2, blobKey3, …);
//または
bs.delete(new BlobKey[]{blobKey1, blobKey2, blobKey3, …});
//または
ArrayList<BlobKey> bkeys = new ArrayList<BlobKey>();
bkeys.add(blobKey1);bkeys.add(blobKey2);bkeys.add(blobKey3);…
bs.delete(bkeys.toArray());
ちなみに手打ちなんで、動かなかったらすみません。

0 件のコメント:

コメントを投稿