Я пытаюсь загрузить файл в 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 на обоих.