Выполнение HTTP PUT через BrightScript в AWS S3 Bucket с предварительно подписанным URL

Я установил API AWS, который получает предварительно подписанный URL-адрес для загрузки в корзину AWS S3.

Предварительно подписанный URL-адрес имеет формат, например

http://docs.brightsign.biz/display/DOC/roUrlTransfer

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

Может ли мне помочь кто-нибудь, у кого есть опыт работы с BrightScript? Я был бы очень признателен.


person Samir Awad    schedule 14.12.2017    source источник


Ответы (1)


Ты на правильном пути.

я бы сделал

sub main()

tr = createObject("roUrlTransfer")
headers = {}
headers.addreplace("Content-Type","image/png")

tr.AddHeaders(headers)
info = {}
info.method = "PUT"
info.request_body_file = <fileName>

if tr.AsyncMethod(info)
    print "File put Started"
else
    print "File put did not start"
end if 
delay(100000) 
end  sub()   

обратите внимание, я использовал два разных метода для заполнения двух ассоциативных массивов. вам нужно использовать метод addreplace (а не ярлык.), когда ключ содержит специальные символы, такие как '-'

этот сценарий должен работать, хотя у меня нет устройства для проверки синтаксиса. также вы должны настроить порт сообщений и т. д. и прослушать генерируемое событие, чтобы подтвердить, было ли размещение успешным и / или каков код ответа. обратите внимание, когда вы читаете ответы от событий URL. если код ответа от сервера отличается от 200, BrightSign удалит тело ответа, и вы не сможете его прочитать. Это бесполезно, поскольку такие службы, как dropbox, любят отправлять ответ 400 с дополнительной информацией о том, что было не так (неверный ключ API и т. Д.) В теле. так что в этом случае вы останетесь в неведении, делая метод проб и ошибок, чтобы выяснить, что было не так.

удачи, извини, я не увидел этот вопрос раньше.

person a walker    schedule 17.11.2018