неэффективная загрузка файлов на CentOs Server - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь загрузить файл в Slack через API, и тот же сценарий прекрасно работает локально (файл правильно загружен), но не работает при запуске с сервера, возвращая:

{u'ok': False, u'error': u'no_file_data'}

вот 2 используемые функции (одна для записи содержимого в папку tmp, другая для загрузки ее на выбранный канал)

def writeToFile():
    with open(output_file, 'rb') as rf:
        with open('/tmp/' + output_file, "w") as wf:
            wf.write(rf.read())


def upload_file():
    with open('/tmp/' + output_file) as file_content:
        r = client.api_call(
            "files.upload",
            channels=channel,
            file=file_content,
            filetype='xlsx',
            title=output_file
        )
        logging.info(r)

Кажется, что файл правильно записывается в папку tmp с помощью writeToFile, но проблема возникает в upload_file.

Я также могу прочитать содержимое, так как

with open('/tmp/' + output_file) as file_content:
    print file_content.read() 

правильно печатает содержимое файла. Так что проблема с вызовом API.

Локально у меня есть MacOS и сервер Linux Centos. Я использую Python 2.7.10 на обоих.

1 Ответ

0 голосов
/ 07 января 2020

Следуя предложению здесь https://github.com/slackapi/python-slackclient/issues/198 Я понял, что на сервере был slackclient 1.0.0, когда локально был 1.3.0.

Установка версии 1.3.0 решила проблему.

...