The free plan of Slack has some limitations. One is the disk space. You have 5Gb of storage. When you reach the limit, you have to delete each file individually. I will use a script to delete all the files older than 2 months.
First I need to create a Slack token (an alphanumeric string) to get access to delete the files. I access the URL https://api.slack.com/custom-integrations/legacy-tokens and I click in the “Create token” button.
I get the token
Then I use this PHP script https://gist.github.com/kasperhartwich/dec5923ffcba55686dfb to delete all the files older than 2 months. You need PHP on one machine.
#!/usr/bin/env php <?php date_default_timezone_set('GMT'); if (count($argv)<2) { echo $argv[0] . ' <token> <until>' . PHP_EOL; echo 'Example: ' . $argv[0] . ' abcd-12345678-123456789-12345 \'-3 months\'' . PHP_EOL; exit; } $token = $argv[1]; $timestamp = isset($argv[2]) ? strtotime($argv[2]) : null; function slack($function, $options = []) { global $token; $response = file_get_contents('https://slack.com/api/' . $function . '?' . http_build_query(array_merge(['token' => $token],$options))); return json_decode($response, true); } $files = slack('files.list', ['ts_to' => $timestamp]); foreach ($files['files'] as $file) { $response = slack('files.delete', ['file' => $file['id']]); echo 'file ' . $file['id'] . ' deleted: ' . $file['permalink'] . PHP_EOL; }
I save this script to the delete-from-slack.php file.
To execute the script, I pass the token and the date until I want to delete the files:
$ php delete-from-slack.php xoxp-1111111111-1321232121-343490803926-6dd2352423bb48aasfasdfssd91c942 '-2 months'