Arkhat
Или не может воспроизвести
Проксимов
Tarrac
ну одну строку отдельно выносить бессмысленно
Nikita
Проксимов
Tarrac
Nikita
Ну чего ж... К примеру стучится на директорию выше, а туда даже посмотреть список файлов "денайн"
Tishka17
можно развернуть?
>>> url = "http://ya.ru/etc/passwd/..\0"
>>> os.path.basename(urllib.parse.urlparse(url).path)
'..\x00'
Tishka17
что-нибудь такое
Tishka17
какая у тебя ОС?
Tarrac
сейчас windows, но скрипт работать будет на сервере
Tishka17
если виндовз, то ещё веселее
Tishka17
но это конечно маловероятно встретить, да
Oleg
привет всем. кто что использует в качестве RichText для django, чтобы по красоте, с медиа-браузером? у меня файлы в S3Boto3Storage, пробовал django-tinymce + filebrowser, после обработки напильником заработало, но всплыла фундаментальная проблема, связанная с GET-параметрами ссылок на файлы (они вставляются в поле as is и через время протухают), поэтому нужна какая-то более плотная интеграция
Tishka17
а зачем тексты хранить в s3?
Tishka17
они настолько болшие?
Tishka17
а
Oleg
картинки через filebrowser выбираются, tinymce вставляет их со всей хурмой типа X-Amz-Signature, и потом когда ключ протухает, картинка уже не доступна
Oleg
нужно какое-то решение типа как в wagtail - <embed id="123"/> (точно не помню, как там выглядит тег, но идея такая)
Oleg
надеюсь, кто-то сталкивался с этим и есть готовое решение)
.
Вячеслав
Всем привет, помогите решить задачу:
Пытаюсь передать файл на севрвер по API через POST запрос
Получаю ошибку
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 28-32: ordinal not in range(256)
import requests
import settings
basicAuthCredentials = settings.basicAuthCredentials
base_url = 'url'
headers = {
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment;filename=filename'
}
file = open('/srv/bot/tmp/file', 'rb').read()
response = requests.post(base_url, data=file, headers=headers, auth=basicAuthCredentials)
print(response.status_code)
print(response.text)
Alex
Tishka17
Вячеслав
Traceback (most recent call last):
File "/srv/bot/tests/test_send_file.py", line 15, in <module>
response = requests.post(base_url, data=file, headers=headers, auth=basicAuthCredentials)
File "/usr/local/lib/python3.5/dist-packages/requests/api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/home/exe90/.local/lib/python3.5/site-packages/urllib3/connectionpool.py", line 603, in urlopen
chunked=chunked)
File "/home/exe90/.local/lib/python3.5/site-packages/urllib3/connectionpool.py", line 355, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/lib/python3.5/http/client.py", line 1122, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python3.5/http/client.py", line 1162, in _send_request
self.putheader(hdr, value)
File "/usr/lib/python3.5/http/client.py", line 1094, in putheader
values[i] = one_value.encode('latin-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 28-32: ordinal not in range(256)
Alex
вообще надо бы в правила включить форму подачи заявки на вопрос из рудача
Tishka17
смотри-ка не угадал
Tishka17
Tishka17
наверно ты его хочешь как файл отправить же
Вячеслав
а как правильно?
Alex
ну он его как octet/stream передает. это конечно странно, но допустимо.
Vlad
Коллеги, а кто нибуть разносил базу mysql между цодами? мастер весит 20Тб..
Yurii
Проблема в headers
Yurii
Скорее всего
Вячеслав
ну суть вот в чем, если я отправляю файл лога .log или .txt мелкий, то все работает
Вячеслав
Беру файл побольше .docx
Вячеслав
сваливается в ошибку
Alex
ты ведь понимаешь что ошибка вообще нихера не связана с размером файла?
Alex
наверное нет
Alex
что в headers?
Вячеслав
ну вот же
headers = {
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment;filename=filename'
}
Alex
хм
Вячеслав
одни файлы проходят, другие нет
Alex
так-с глупый вопрос, python 2 или 3?
Вячеслав
3
Alex
вижу
Alex
3.5
Tishka17
Tishka17
а как правильно?
https://2.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file
Alex
Tishka17
окей
Alexander
data='json=1&task=post&board=test&thread=80980710&comment=тест'.encode('utf-8')
Tishka17
меня смутило начличие Conent-Disposition
Tishka17
Alexander
Alexander
encode
Tishka17
0_о
Tishka17
что энкод?
Alexander
Please do not attempt to send body data in unicode strings. You need to encode that before you send it
Tishka17
и к чему это?
Tishka17
ты вообще его код видел?
Alex
ээээ
Alex
ничего что он читает байты из файла?
Alexander
Tishka17
зачем? ))))
тогда ответь, как ты собираешься сдеать encode на вордовском файле открытом в бинарном режиме?
Alexander
Tishka17
что непонятного в словах "вордовский файл"?
Tishka17
Tishka17
попробуй байтовую строку в хэдер
Tishka17
падает же где-то в self.putheader(hdr, value)
Вячеслав
Вячеслав
файл кириллица
Alex
блядь