我正在创建一个Play 2.2应用程序,根据URL,我需要从S3检索图像并将其呈现给用户。
我知道我可以在获得图像后立即渲染图像,但我想将其嵌入到网页中,以便我可以将其居中并在必要时显示更多信息。
我看到两种可能的选择:
选项A:
选项B:(首选方法)
第二种选择可能吗?如果是这样,这是一种可接受的方法,还是性能不值得呢?
答案 0 :(得分:1)
免责声明:无论如何,有可能因为您的问题是“基于意见” - 答案也只是一个建议(或者说是建议的一部分)。
首先,使用一些图形库来处理图像,即我们正在使用当前GraphicsMagick (GM) + gm4java(对不起,不知道什么是Scala的正确库)文件裁剪,快速,漂亮,按预期完成工作。
在我们的情况下,我们需要避免向未经授权的用户显示原始/裁剪图像的可能性,因此我们在检查访问权限后使用Play return ok(new File(path))
返回它,但对于公共资产,您也可以使用ie一些HTTP服务器,它只处理传送图像,甚至将裁剪后的图像发送回S3,然后直接在src
属性中使用它的URL。
方法很简单:
请记住,相当糟糕(表示:缓慢且昂贵的)选项可以将S3文件提取到Play应用并在每次请求裁剪版本时进行处理,因此需要添加一些额外的HDD空间在您的定价计划中,尽可能在目标计算机上保留origins
和cropped
。
同样提示:从结果缩略图中删除color profile
(使用GM)会降低其大小,这样您就可以节省额外的美元转帐/存储费用。