Java女子部勉強会に行ってきました。
1/24(土) 関西Java女子部 部活 - connpassに参加してきました。
同じ週の水曜にははじめて女子応援企画!クラウド勉強会【女子限定】 - JAWS-UG KANSAI | Doorkeeperにも参加。
関西で女子会に2回も参加できてすごく楽しかったです。
最初に自己紹介と今日の課題を各自発表、その後自習、3時にスイーツタイム、最後に各自が課題を発表と、あっというまに時間が経過しました!私は最近いろいろはまっているgoogle maps APIなどいろいろ教えていただいてすごく勉強なりました。
(本を読んで静かに勉強していたほかの参加者さん、うるさくしてごめんなさい、^^;)
私の課題は、AWSのS3にJavaを使ってアクセスしてその内容(Bucket)をJavaFXを使って画面に表示することに挑戦してみました。
AWSの勉強会でS3を触ってみた20150121 JAWS-UG関西女子会 第一回勉強会資料 // Speaker Deckを発表されていた(すごく楽しい発表でした)のですが、以前Javaからs3にアクセスするサンプルを実装(コピペ)してみたことを思い出したので、とりあえず勉強会では、bucketを検索して、bucketごとにJavaFXのTabを作成、各bucketのOwnerと作成日を表示するところまでで終わりました。
翌日にファイルをListViewを使って表示する機能を追加しました。
もっといろいろ(例えばファイルのアップロードとか)挑戦していきたいです!
- AWSコンソールでのbucketを表示
- JavaFXでbucketを表示
上のAWSコンソールと同じbucketとファイルが表示されました。
- FXMLDocumentController.java
AWSのS3に接続
AmazonS3 s3 = new AmazonS3Client();
Region usWest2 = Region.getRegion(Regions.US_WEST_2);
s3.setRegion(usWest2);
S3でのbucketを取得して、bucuket毎にタブを作成
作成したタブに「Owner」「作成日」とファイル一覧を表示
s3.listBuckets().forEach(bucket -> { // creating tab for each bucket Tab tab = new Tab(); String bucketNm = bucket.getName(); tab.setText(bucketNm); tabPane.getTabs().add(tab); VBox vbox = new VBox(10); vbox.setPadding(new Insets(10)); vbox.setStyle("-fx-background-color: #ffc9ae"); // Owner HBox hbox1 = new HBox(10); Label ownerLabel = new Label("Owner:"); String owner = bucket.getOwner().getDisplayName(); Text ownerText = new Text(owner); hbox1.getChildren().addAll(ownerLabel, ownerText); // Create Date HBox hbox2 = new HBox(10); Label dateLabel = new Label("Create Date:"); String createDate = bucket.getCreationDate().toString(); Text dateText = new Text(createDate); hbox2.getChildren().addAll(dateLabel, dateText); tab.setContent(vbox); tab.setStyle("-fx-background-color: #ffc9ae;"); // ListView for file path ObservableList<String> items = FXCollections.observableArrayList("file path"); ListView view = new ListView(items); ObjectListing objList = s3.listObjects(new ListObjectsRequest() .withBucketName(bucketNm) .withPrefix("")) ; objList.getObjectSummaries().forEach(obj -> { String filePath = obj.getKey(); items.add(filePath); }); vbox.getChildren().addAll(hbox1, hbox2, view); });
とりあえずコードはGitHub - tomoTaka01/JavaFXAWSS3Sample: AWS S3 simple sample by JavaFXにアップしました。
- 最後に
Java女子会、AWS女子会のスタッフの方々には、お世話になりありがとうございました!
Java女子会ではいつも会場を提供していただいている、Osakan space大阪のコワーキングスペース : Osakan Space (オオサカンスペース) : 本町駅すぐ御堂筋沿い | 御堂筋線本町駅番出口から30秒のCoworking space(コワーキングスペース)です。さんにも感謝です!