Привет. у одного меня проблемы с range-запросами в object storage?

29 ответов

49 просмотров

Что за проблема?

Dmitry-Kulagin Автор вопроса
Jürgen Romins | no pm!
Что за проблема?

Ошибка 500. Тела не знаю

Dmitry Kulagin
Ошибка 500. Тела не знаю

Не густо ты деталей дал

Dmitry Kulagin
Ошибка 500. Тела не знаю

Ну 500 это ведь не только "что-то сломалось в Object Storage". Это ещё тут забыли вставить проверочку валидности запроса и вернуть 400 Bad Request чтобы не свалиться ниже на ассерте. В общем, я бы даблчекнул что запрос готовите правильно.

Dmitry-Kulagin Автор вопроса
Sergey Klyaus
Ну 500 это ведь не только "что-то сломалось в Obje...

500 - это серверная ошибка. Если сервер считает, что некорректный запрос - он отвечает 4xx ошибкой. Еще одной особенностью является то, что этот код нормально работал раньше (запрос проходил), а потом перестал проходить. Так то я переписал свой проект, теперь он не делает запросов с Range.

Dmitry Kulagin
500 - это серверная ошибка. Если сервер считает,...

Не всегда 5xx это серверная ошибка от слова совсем

Dmitry-Kulagin Автор вопроса
Jürgen Romins | no pm!
Не всегда 5xx это серверная ошибка от слова совсем

https://ru.m.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP

Dmitry Kulagin
500 - это серверная ошибка. Если сервер считает,...

Ну я, например, не помню этой красивой схемки и наверное, разработчики постарше тоже - творят что хотят.

Dmitry Kulagin
https://ru.m.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8...

По некоторым стандартам безопасности подменяют 4xx на 5xx! Я в курсе за http коды но не читайте с утра советских газет

Nikolay Matrosov
Ну хоть не на 200 и то хорошо

А на 2xx я тоже видел и когда проходил по одному проекту комплаинс там вендоры прям хотели

Dmitry-Kulagin Автор вопроса

С range все работало. Сейчас я просто скачиваю весь файл на диск и с ним побайтово работаю.

Dmitry Kulagin
С range все работало. Сейчас я просто скачиваю вес...

В s3 как работает? Это единственный сильный аргумент в такой ситуации

Dmitry-Kulagin Автор вопроса
Pavel Zheltouhov
В s3 как работает? Это единственный сильный аргуме...

Раньше побайтово через range читал файл. Сейчас кэширую на диск и продолжаю побайтово работать.

Dmitry-Kulagin Автор вопроса

https://github.com/snabb/httpreaderat/blob/master/httpreaderat.go#L122

Тот же код, но примененный к aws s3 работает хорошо?

Dmitry-Kulagin Автор вопроса
Pavel Zheltouhov
Тот же код, но примененный к aws s3 работает хорош...

Тот же код, но примененный к веб-серверу, который поддерживает стандарт - работает хорошо.

Dmitry Kulagin
Тот же код, но примененный к веб-серверу, который ...

Нам так-то все равно на стандарт и вашу программу. Просто хотел подсказать как именно построить общение с техподдержкой. Я считаю сравнение с AWS более продуктивным.

Dmitry-Kulagin Автор вопроса
Pavel Zheltouhov
Нам так-то все равно на стандарт и вашу программу....

https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html#API_GetObject_RequestSyntax

Dmitry Kulagin
https://docs.aws.amazon.com/AmazonS3/latest/API/AP...

Не понимаю. Это лог запуска?

Dmitry-Kulagin Автор вопроса
Pavel Zheltouhov
Не понимаю. Это лог запуска?

Это дока амазона, раз вам все равно на стандарт.

Dmitry Kulagin
https://github.com/snabb/httpreaderat/blob/master/...

Эм а почему не через либу? Я только что проверил нормально читает ``` b'\xe4Pq\x11P@\xc1uE]\xd8\xbf\x88\x07\xe8\n\x9e\x80\xba\x93\xcc@;eJ8\xa6A\xf9\xe7\xf9\xc0\xa7\xed\xe4\xed\xcc7\xef\xf3\xfe\x9e\xf7y\x9f\xf7M}\x01g(\xcc\xba\x07\xdb\\\xbe<E+\x19\xc0\x19\x8e\xa2\x89\xaf\x9c5\xff\x9a\xf8\x1eDP\x10\x81\xb9\x7f\x10\xa8\x00@\x08\xe0\xbed\xa1\xad\x05\xd4\xd4\xc2\xc1\x10\x19\xc8\xcaR\x04\xbc\xde\xd0\xf9\xda%{\xfdwj\xbe&\xfe\x17\xbe\x97}\x1c\\\xbc\xffa\x14\xc4\xd2\xfeO\x85I\xf9?\xc8\x84BN\xb66\x98\xebaB$M\x86\xc8\xdc\xba\xa0\x97\xbd\xf4g\xc4\x1d\x8c!H\x8b\xfe\x87P\\\xec\x7f\x08\x00`D\x91\x05\xc8\xf76[\xb6\xff\xe7\xfe\x1f\x95\xeddi&\xca\x04\xb3\x87\xdc5*;\x92=dTv_6\xec\xb11\x81"6\x94=$\x1b\xca\x1e3(\xdb\xc5\xc4\xe2/X\x9d\xf49\xaf\x83\xd9c\xb8\x06,\xe9a\xb8\x1f\xb8\x06\xd6\xec1w\x0f\xca\x0e\x87\xe3M\xb3A\x92\x00a\x06dh\xd8nGH\x9cP\xe2\x0c\t"\x00B\x11\x94\r\xb2C\xb6\xecA\xd9\x94\xd7\xedf\xa8\x90\xd3\xcb\x96\xf2\xf783\xf8\xb8\xd7B1_\xfcJc\x93\xec1W\xba\xbb\xae:\x93\xd2?\x19\x0e9\xac\xac\x97\xa5\x18yB@2\xfd\xe3\x10\xda\\\xff(\x00\xa5\xf5\x9f\nk\x05\xfd\x0fJv\x9f\x90\xd7\xc5\xb0Rw\xe2n\x14\x1fu\xe7\x7fH\xe2\xb7\xad ?@\xad \x17\'l$\xe5\xaa\rx\xc3,\x87\x17\n\x84\x19.\xfe\xb0N\x7f\x98\xe1\x7f\xba\x00\x1e\xa7\x87\xe1F\x81\xc7\x97\xe4\xc1g\x9a\xb5\xf0P&\xeas\x06\x18\x95=\xc4\x04L\x0c\xe5e\xe9\xe09\xf7#0\x04\x00\xb8{6\x86H\x00\xa6q\x9a\x82\x94J;\x89 4E\x13(@\xda\xb8\xec\x97\xb6# \n\xdah\xa9\x10\xd9D\x9f\x97\x1d%[\xd4\xbf\xdb\xe9qr\xefD\x8e\x00\x90L\xff(\x804\xd7?\xc6\xa5\x8bi\xfd\xa7\xc0\xae\x88\xfeS\xa67\xac\x99\xdaP\x1c\x02A\x8c\xa2Q%\x84"\x00\t\x110J0\xa4\x12\xc7lJ\x1bL\x12T\x8bj\x13\xd4p\xf5%%R\xfaw;YW\xd0\xea\xf0\x06C\xc1\\\xdbee\xfe\xbc%\xd3\xff\xb9\xeb?\x0c\x87\xf0\xb4\xfeSaR\xfe\x8fD\xdd$+\xdb\xea/\xb9\xff\x11\x04j\xe6\x7f\x1c\x05\xe0\xb4\xffSaW"\xfe\x07\x99@\x84\t$\xbd\xdb\xd9f\x17\x92\xe45\xc6x\x1c\x80q;C0\xb4\x1d\xb0!\x14@\x12J\n\xb3\x91$F\x004\nA8$\x15\xe3\xf9\x11\x7f\xf5E\xf7\xe4\xd6r\xfcw{)2\xde\x03\x97?\x07\\|\xfc\xc7Q,\xbd\xfeK\x89I\xfa\xdf[ke\xd8P\xc0\x99\xa2\xf5?\x8aJ\xac\xff\xd3\xf3\x7fJlT\xb6\xd7\x97Py<\x16S\xa4\xcf\xc7\x9c\x8d\xafAg\xc3\xb9Kq\x08M\xe4\xd4\x83\xb2=d\xf4\x9c\x17Q \x11\xbf\x7fK+\x8a\xc1-,)\x06K\xcd)Mf\x11\x9a\x800%D\xc18\x0cA\x08h\x83m\x0cE\xdb\x10\x9a\xb63\x14\xcc\xad\x16`\xa9Y\xa4\x89n~7S\x89\x94\xfei\x87\xd5G\x06H\x8f<\xd9\x7fR\xfdC\x18rN\xfe\x0f#`Z\xff\xa9\xb0\x83m\x14\x8a\x8e\x9c\xca\x14\xf4\xa8\xf6o\xf5[\xeb3\xfc\xa3\xe7I\xa0\xdb\x99\x11`\xb59CA\x85\xa2\x93B\xd1\xf6\xec\xa0P\xac\xe4~ep\xdc\xf2\xb5\x85E\xa5Y\x1a]V\xb9\xaaBe\xd0Vj+L\x89\xeb\x99\x86\xa2\xa2|\xb5\xaaD\xad2jU\x0e\xa3\xdfUTQVFA\x9e"\xd2\xa2Qz\xdc\x85\x11\xc2\x12\xb4\xf8\xc2>\x03\xcd\xb2*\x88\x06<9\x14\x1cE4\x1e\xa28f\xca\xb3\xd01S\xa6\x16-\x89j\xd4\x85\xe6X\xbd\xb6\xd2\xd90\x02\xa8G\xaa\x08\xa7\xba\xb0\xb8L\x97\x83V\xa3\xfaB\xb6\xc6\xae10\r\xc1\xca\n\xac\xca' ``` И тд))

Dmitry-Kulagin Автор вопроса
Jürgen Romins | no pm!
Эм а почему не через либу? Я только что проверил н...

Потому что в aws либе нет возможности возвращать io.ReaderAt, только io.Reader. Кстати, я пробую это все на гошке, а не питоне.

Кто такое сказал?

Dmitry-Kulagin Автор вопроса
Jürgen Romins | no pm!
Кто такое сказал?

Глянь что в Body в ответе: https://docs.aws.amazon.com/sdk-for-go/api/service/s3/#S3.GetObject

Dmitry Kulagin
Глянь что в Body в ответе: https://docs.aws.amazon...

Потому что это не GetObject а GetObjectInput

Dmitry-Kulagin Автор вопроса
Jürgen Romins | no pm!
Потому что это не GetObject а GetObjectInput

В Input можно передать range, который преобразуется в http заголовок range.

Похожие вопросы

Обсуждают сегодня

Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
А как получить доступ к отправленному сообщению в ChosenInlineResult? Раньше кажется можно было, щас убрали?
net
2
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Всем привет В общем надо на странице вакансии вывести вакансии с hh, но когда я пишу код в разделе Code ошибка Invalid URL format. The URL should start with the forward slash...
A da
1
DataGrip не сканирует почему-то все таблицы, хотя раньше показывал их че за херня, сталкивались?
Magic
9
Карта сайта