AWS等のクラウドサービスでサーバ内で作業をしていて、ファイルをローカルに落としたい、なんてことありませんか?
セキュアなファイルを取り扱うなら考えることは多くなるかと思いますが、雑に扱っていいものは手軽に操作したいですよね。
ということで、slackを使って簡単にファイルを連携する方法を自分のために書き残します。
準備するもの
- Slackのワークスペースおよび投稿先のチャンネル
- 適当なサーバ(curlコマンドが使えるもの)
- 「楽をしたいんだ」という強い気持ち
Slackのアプリ作成
先ずは、Slackでアプリを作成します。
つぎ、 https://api.slack.com/ にアクセスします。
「Start Building」を押下します。
「Create a Slack App」のダイアログが出るので、アプリ名とワークスペースを指定します。
設定出来たら「Create App」を押下します。
アプリが出来上がったら、「Permissions」を押下します。
「OAuth & Permissions」の画面に遷移するので、下の方にある「Scopes」に移動します。
「Add an OAuth Scope」を押下し「files:write」を選択します。
Scopeの追加が出来たら上のほうに移動し、「Install App to Workspace」を押下します。
許可が完了したら「OAuth & Permissions」の画面に戻ってきます。
「Bot User OAuth Access Token」が表示されていると思うので、これを控えておきます。
Slack API側の設定はこれで終わりです。
Slackにファイルアップロードしてみる
APIの使い方は以下のURLを参考にしてください。
https://api.slack.com/methods/files.upload
curl -F file=@dramacat.gif -F "initial_comment=Shakes the cat" -F channels=C024BE91L,D032AC32T -H "Authorization: Bearer xoxa-xxxxxxxxx-xxxx" https://slack.com/api/files.upload
公式のサンプルはこのように書かれています。
こちら、必要な情報は最低限は以下の3つです。
- file : アップロードするファイル
- channels : アップロード先のチャンネル(チャンネル名でもIDでもいい)
- Authorization : 先ほど取得したトークン(xoxb-… のアレ)
この3つです。
curl -F file=@./現場猫.jpg -F channels=#ファイル置き場 -H "Authorization: Bearer xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx" https://slack.com/api/files.upload
このようにcurlのパラメータを指定してみました。
結果は以下の通り。
これで、共有したいファイルはコマンド叩けばいつでも共有できますね。
私からは、以上です。