深遠な理由*1によりファイルアップロードをSlack経由で行いたい。 アップロード先はAWS S3なのですが、ここではAWSの世界にファイルを持ち込むまでを書きます。 普通、ファイルアップロードしたいとなれば入り口としてWebサーバ的なものが必要ですが、 ちょっとした要件にはセキュリティコストが高くついて面倒。 SlackやGithubといった既に利用している外部サービスに乗っかればその辺のコストを省略できる、 というのが後付の狙い。 どうしたかというと、Slackのファイルアップロード機能でアップロードします。 その際にコメントに特定のキーワードを付与すると、 Hubotが裏でファイルダウンロードしてS3にアップロードします。 HubotはAWSの中にいる前提です。簡単・強引な仕様。 hubot-slackにはそういう機能はないので、生のAdapterで書きます。 要点抜粋のソースは以下