AWS SDK for Smalltalk を使ってみました ~ S3 Upload ~

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

私は Smalltalk というプログラミング言語が好きなのですが、有志の方が AWS を操作するために AWS SDK for Smalltalk を作成されていたので使用してみました。
また、今回は Mac 標準ツールと Youtube のみの編集による動画にも初挑戦してみました。

Smalltalk について

Smalltalk はクラスベースのオブジェクト指向プログラミング言語です。長い歴史を持つプログラミング言語ですので生い立ち等に興味のある方は Wikipedia を参照されると良いと思います。

Smalltalk の文法については「基礎文法最速マスターランキング」に掲載されている記事が分かり易くまとまっていてオススメです。

今回は Smalltalk の処理系に Pharo を利用しました。マルチプラットフォームなので環境に合うアーカイブをダウンロードし、適当な場所へ解凍すれば環境構築は完了です。

後は Pharo.app を起動(Windows では Pharo.exe をダブルクリック)するだけです。

AWS SDK for Smalltalk

AWS SDK for Smalltalk は GitHub 上で公開されています。現在(2015/08/06)は DynamoDB と S3 のいくつかの操作に対応しているようです。

「インストール方法」の「簡単インストール」に従ってインストールします。

S3 へのファイルアップロード

SDK を利用して S3 へファイルをアップロードしてみます。

アクセスキーの設定

AWSS3Config default
    accessKeyId: 'ACCESS_KEY';
    secretKey: 'SECRET_KEY'

ACCESS_KEY および SECRET_KEY には実際のキーが入ります。

アップロード

ファイル hoge.csv を バケット cm-inage 内に upload/hoge.csv としてアップロードしています。

| s3Client s3Bucket fileReference |

s3Client := S3Client new.
s3Bucket := s3Client getBucket: 'cm-inage'.

fileReference := '/Users/inagetooru/Desktop/hoge.csv' asFileReference.

s3Bucket atKey: 'upload/hoge.csv' putObject: fileReference contents

まとめ

AWS SDK for Smalltalk は今後も更新を予定しているとのことなので楽しみです。S3 のマルチパートアップロードが対応されれば Smalltalk の処理系で ETL も夢ではないですね。(^^)
SQL の発行には Garage というものを使います。標準では Redshift をサポートしていませんが、PostgreSQL のドライバで接続できるかそのうち試してみようと思います。

今回初めて動画を使ってみましたが如何でしたでしょうか?今後も「ここは動画にした方が分かり易いかな」と感じるところには使っていけたらと思います。