slack-file
2022-08-25 23:13:37Slackにアップされたファイルを操作するツール(主に削除)
ダウンロード
用途
- 古いファイルが溜まっているので掃除したい。
- 同じ名前のファイルを定期的にアップしているが、最新のものだけ残してあとは消したい。
使い方
まずはアプリの設定
> slack-file auth
ブラウザが起動して Slack の Your Apps ページに移動します。
アプリの作成
ここで Create New App をクリックして、新たにアプリを作成します。
既存のアプリで、後述する権限を持ったものがあれば、新たに作成する必要はありません。 その場合は該当するアプリを編集してください。
権限の設定
Redirect URLs に https://localhost:7878 を追加します。 Save URLs も忘れずにクリックします。
User Token Scopes で Add an OAuth Scope をクリックし、 files:read, files:write の両方を追加します。
Scopes を追加したあとに、Reinstall to Workspace をクリックする必要があります。 これを忘れると、後でエラーが発生します。
アプリのページに戻って(ブラウザの戻る)…
Client ID と Client Secret を確認します。 この内容を使って、以下のコマンドを実行します。
認可
> slack-file auth {Client ID} {Client Secret}
※実際には {} は要りません。
すると、認可のページに遷移しますので、許可します。
slack-file.conf というファイルがカレントディレクトリーに作成されます。 この中にはアプリにアクセスするためのトークンが記録されています。
ファイルのリストを見てみる
> slack-file list
とか
> slack-file list my*.log
古いファイルや特定のチャネルのファイルのみに絞り込むことができます。
オプションについては、以下のコマンドで確認してみてください。
> slack-file help list
標準エラーの場合
Windows の場合です。
hoge.exe 2>&1 | ts > log_ts.txt
古いファイルを削除する
まずは確認
1日前 以前のファイルを削除してみます。
> slack-file delete --dry-run --older 24h *
最後の *
は、削除するファイル名をワイルドカードで指定しています。
※オプション --dry-run
を指定すると、実際には削除されません。
実際に削除する
オプション --dry-run
を外すと、実際に削除されます。
> slack-file delete --older 24h *
重複したファイルを1つだけ残して削除する
> slack-file uniq --dry-run
※オプション --dry-run
を指定すると、実際には削除されません。
uniq サブコマンドのオプション
何をもって同一のファイルとするかは、オプション --key
で指定します。
また、どのファイルを残すかは、オプション --sort
で指定したフィールドに基づきます。
-Created
のように、先頭に -
がついているものは、最後のものが優先としてみなされます。
--dry-run
を使って確認してみてください。
> slack-file help uniq
command uniq - delete duplicated files
Options:
--key a unique key set of files (default: Name,Title)
--sort sort fields of each --key group (default: -Created,-Timestamp,ID)
--exclude do not delete if any properties not empty (default: IsStarred,IsExternal)
--dry-run do not delete files actually
Global Options:
--config (default: ./slack-file.conf)
Usage:
# SIMULATE delete duplicated files by Name, keep newest Timestamp
slack-file uniq --key Name --sort -Timestamp --dry-run
# DELETE
slack-file uniq --key Name --sort -Timestamp
ファイルをダウンロードする
デフォルトでは、指定したファイル名に一致する最新のタイムスタンプのファイルがダウンロード対象になります。
> slack-file download my*.log > my_latest.log
- 📄 Hugo テーマ 6. Render Hook2024-08-16 12:36:24#5 の題材を、今度は Render Hook という機能を使って実装します。
- 📄 pomi2024-08-16 10:26:05ポメラSyncされたメモを操作するツール →後継のソフトウェアpmsyncを使ってください。
- 📄 Goでテーブル駆動のベンチマークをとる方法2024-08-16 10:26:05公式に記載ありますが、まとめてみます。
- 📄 slog-handler-guide2024-08-16 10:26:05slog-handler-guide の解説
- 📄 Popcorn2024-08-16 10:26:05自分がよく使うコマンドを登録して呼び出すための Vim script
- 📄 Ergodox EZ キーボードレイアウト2024-08-16 10:26:05JISレイアウトを参考にした、Ergodox EZ のキーボードレイアウト
- 📄 Go言語でのスタックトレースを簡素化する2024-08-16 10:26:05Go言語のパッケージ: 冗長なスタックトレースを簡素化して出力します。
- 📄 Keychron K15 Pro2024-08-15 21:30:59買ったので雑に感想でも書いてみます。
- 📄 Vim LSP メモ2024-08-15 21:30:59忘れそうな内容をメモ
- 📄 GOEXPERIMENT + Build Constraints2024-08-15 21:30:59例えば GOEXPERIMENT=rangefunc の場合にビルドしたい/したくない場合の書き方