Скрипт сохранения на сервере локально - PullRequest
0 голосов
/ 10 мая 2019

Я написал скрипт, который использует слабый API для анализа файлов AWS S3 в поисках строк или примеров. Поскольку это тестирование, я использую свою локальную машину и ngrok для пересылки трафика localhost.

Дело в том, что сгенерированные файлы хранятся на моем компьютере и будут храниться на сервере, как только сценарий будет готов к работе.

В идеале, я бы хотел, чтобы пользователям не приходилось получать файлы с сервера. Как вы думаете, возможно ли хранить напрямую на локальном компьютере пользователя?

1 Ответ

1 голос
/ 10 мая 2019

Нет.Slack не позволяет вам получить доступ к локальному компьютеру их пользователей через приложение / API Slack.

Решение 1. Загрузка через браузер

Самым простым решением будет предложить прямую ссылку для загрузки всообщение Slack, например, с помощью кнопки Link .Когда пользователь щелкает по нему, ему предлагается загрузить файл на его локальный компьютер.

Вот пример из одного из моих приложений: enter image description here

И один разщелкнув по нему, вы получите это окно:

enter image description here

Чтобы разрешить загрузку через браузер, вам необходимо установить соответствующие заголовки и отправить содержимое файла в браузер.

Один из подходов состоит в том, чтобы иметь вспомогательный скрипт для фактической загрузки и включить ссылку на вспомогательный скрипт в кнопке ссылки (вы также можете включить некоторые параметры в ссылку, которая определяет, какой файл загружается).

Затем вспомогательный скрипт выполняет следующие действия:

  1. Извлекает загружаемый файл (например, изображение в формате PNG)
  2. Устанавливает заголовки, чтобы разрешить загрузку через браузер
  3. Отправьте файл в браузер

Вот пример на PHP:

<?php
$filename = "demo.png";
$file = file_get_contents($filename);
header('Content-Disposition: attachment;filename=' . $filename);
header('Content-Type: image/png');
echo $file;
die();  

Для получения дополнительной информации о заголовках загрузок см. Также этот ответ на SO.

Решение 2. Загрузить в Slack

В качестве альтернативы вы можете загрузить файл в рабочее пространство Slack пользователя с помощью file.upload метода API.Таким образом, пользователю не нужно ничего скачивать, и вы можете удалить файл с вашего сервера после того, как ваше приложение завершит обработку.

...