Что за проблема?
Ошибка 500. Тела не знаю
Нет тела, нет дела )
Не густо ты деталей дал
Ну 500 это ведь не только "что-то сломалось в Object Storage". Это ещё тут забыли вставить проверочку валидности запроса и вернуть 400 Bad Request чтобы не свалиться ниже на ассерте. В общем, я бы даблчекнул что запрос готовите правильно.
500 - это серверная ошибка. Если сервер считает, что некорректный запрос - он отвечает 4xx ошибкой. Еще одной особенностью является то, что этот код нормально работал раньше (запрос проходил), а потом перестал проходить. Так то я переписал свой проект, теперь он не делает запросов с Range.
Не всегда 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
Ну я, например, не помню этой красивой схемки и наверное, разработчики постарше тоже - творят что хотят.
По некоторым стандартам безопасности подменяют 4xx на 5xx! Я в курсе за http коды но не читайте с утра советских газет
Ну хоть не на 200 и то хорошо
А на 2xx я тоже видел и когда проходил по одному проекту комплаинс там вендоры прям хотели
С range все работало. Сейчас я просто скачиваю весь файл на диск и с ним побайтово работаю.
В s3 как работает? Это единственный сильный аргумент в такой ситуации
Хоть код бы показал бы
Раньше побайтово через range читал файл. Сейчас кэширую на диск и продолжаю побайтово работать.
https://github.com/snabb/httpreaderat/blob/master/httpreaderat.go#L122
Тот же код, но примененный к aws s3 работает хорошо?
Тот же код, но примененный к веб-серверу, который поддерживает стандарт - работает хорошо.
Нам так-то все равно на стандарт и вашу программу. Просто хотел подсказать как именно построить общение с техподдержкой. Я считаю сравнение с AWS более продуктивным.
https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html#API_GetObject_RequestSyntax
Не понимаю. Это лог запуска?
Это дока амазона, раз вам все равно на стандарт.
Эм а почему не через либу? Я только что проверил нормально читает ``` 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' ``` И тд))
Потому что в aws либе нет возможности возвращать io.ReaderAt, только io.Reader. Кстати, я пробую это все на гошке, а не питоне.
Кто такое сказал?
Глянь что в Body в ответе: https://docs.aws.amazon.com/sdk-for-go/api/service/s3/#S3.GetObject
Потому что это не GetObject а GetObjectInput
В Input можно передать range, который преобразуется в http заголовок range.
Обсуждают сегодня