我已经设置了一个AWS api,它获取了一个预先签名的URL,用于上传到AWS S3存储桶。
预先签名的网址格式为
其中backgournd4.png将是我上传的文件。
我可以通过Postman By:
成功使用此URL但是,我尝试使用在BrightSign播放器上运行的BrightScript进行此调用。我非常确定我应该使用此doucmentation中描述的roURTransfer对象和PutFromFile函数:
http://docs.brightsign.biz/display/DOC/roUrlTransfer
不幸的是,我找不到任何好的工作示例来说明如何做到这一点。
任何有使用BrightScript经验的人都可以帮助我吗?我真的很感激。
答案 0 :(得分:0)
您在正确的轨道上。
我愿意
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密钥等)的更多信息。因此,在那种情况下,您会被蒙在鼓里,不断尝试并找出错误所在。
祝你好运,对不起,我没有很快看到这个问题。