Amazon Kinesis Video GetMedia / PutMedia

Я использовал python 3.6 и хочу отправить видеопоток в aws kinesis с помощью API. Я использовал клиент python aws для создания потока и GetDataEndPoint, но когда я хочу опубликовать свои данные с помощью своего пользовательского запроса (PutMedia на самом деле не входит в клиент python), я получаю сообщение об ошибке Unable to determine service/operation name to be authorized.

Я следую api doc видео носителей aws kinesis PutMedia и GetMedia.

Итак, я начинаю с получения конечной точки с GetDataEndPoint с помощью клиентский метод:

response = client.get_data_endpoint(  # aws client method
    StreamName=STREAM_NAME,
    APIName='PUT_MEDIA'
)
end_point = response['DataEndpoint'] # https://s-EXAMPLE.kinesisvideo.eu-west-1.amazonaws.com

и я публикую свои данные по этому адресу:

headers = {
    "x-amzn-stream-arn": STREAM_ARN,
    "x-amzn-fragment-timecode-type": "ABSOLUTE",
    "x-amzn-producer-start-timestamp": start_tmstp
}
# Sign header...
response = requests.post(end_point, data=data, headers=headers)  # 403 - Unable to determine service/operation name to be authorized

Поэтому я не понимаю, почему я получаю эту ошибку ... Я нашел этот поиск проблемы в документе aws. Но они говорят, что мы должны указать параметр ApiName. Что я делаю...

This error might occur if the endpoint is not properly specified. When you are getting the endpoint, be sure to include the following parameter in the GetDataEndpoint call, depending on the API to be called:

Мне также интересно, действительно ли метод GetMedia реализован в клиенте, как они говорят, здесь, потому что, когда я отлаживаю этот метод, клиент не вызывает GetDataEndPoint и поэтому делает запрос в https://kinesisvideo.region.amazonaws.com, кроме https://ID_EXAMPLE.kinesisvideo.region.amazonaws.com. Таким образом, метод получает ошибку Unable to determine service/operation name to be authorized, как описано в поиск проблемы

Я застрял на одном и том же, не могли бы вы поделиться полным кодом того, как отправить мультимедиа с помощью PutMedia с python ??

Binary 19.09.2019 17:31

Я заставил работать кусок кода: stackoverflow.com/a/59551573/362754

minghua 01.01.2020 11:15
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
2
1 642
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы получаете ошибку, потому что вы, вероятно, предоставляете конечную точку без «действия», которым в вашем случае будет putMedia.

Попробуйте добавить /putMedia к своей конечной точке и не забудьте указать заголовок "content-type": "application/json".

Кстати, вы также должны сгенерировать v4 подписи для вашего запроса. Вы можете использовать библиотеку или следовать этому руководство по питону, чтобы сделать это.

Обратите внимание, что проблема на github говорит, что хэш полезной нагрузки должен быть исключен из подписи v4.

minghua 25.12.2019 22:39

Не могли бы вы поделиться полным примером кода? В любом случае большое вам спасибо!

minghua 25.12.2019 22:41

Собственно образцы я просил здесь: stackoverflow.com/questions/59481174/…. Вы можете туда ответить?

minghua 25.12.2019 22:44

Другие вопросы по теме