我的应用程序上有一个附件功能。用户可以使用Slingshot将文档上传到S3,然后单击一个按钮,打开一个模式和一个显示附件的转盘。
S3中的下载URL存储在Mongo中,我有一个模板助手将它们吐出来,然后each
将它们放入转盘中。事实上,这一切都很流畅。
但是,为了更好的安全性,我想使用签名的url。我的问题是,单击按钮显示模态实际上每次都会创建一个子模板。然后,这个子模板调用一个方法来创建并返回签名的url。这并不有效。
理想情况下,我希望模态和旋转木马保持被动。这样用户就可以上传一个新文档,然后在不刷新页面的情况下查看它。但,同时,我不想再辞职一堆文件。
我采用了使用Session Var的方法,然后在URL之间进行切换,看看它们是否发生了变化。但这似乎不对。我必须注意,浏览器确实会将这些上传内容缓存在旋转木马中(它们大多是图像(。所以我并不特别关心实际签名url的过期时间。
有什么想法吗?我读过一些关于使用时间冻结早于签名URL的模式。。所以只有当它被>超过有效期。然而,此模式仍然会调用md服务器端,并且仍然执行s3.getSignedUrl fn。。
谢谢!
我将模态与父模板分开。然后,我使用了本地集合而不是Sessions。在Modal.show上,我只需检查本地集合的长度,如果它不存在,那么我会调用服务器来获取签名的URL。这应该保证它被调用一次。
然后可以将新的S3文件插入到这个新的本地集合中。这一切都会让事情被动地运转。
最干净的溶液我有atm