2015-04-15 175 views
0

我在前端使用Ember,后端使用Node/Express。我从我的客户端直接将图像上传到S3。我现在的问题是图像尺寸很大(970×728像素(自然:3264×2448像素)),我想优化尺寸。我已经能够使用画布做到这一点。但结果dataURI也非常大。我可以将它存储在我的服务器上,但这似乎很愚蠢,因为我将有一个大文件坐在s3中,另一个坐在我的服务器上为每个图像。我觉得解决方案应该首先将dataURI(以blob形式)直接上传到s3,但这正是我难以理解的地方。为了在画布中绘制图像,我需要s3的src url。那么如何获得dataURI并将其保存到s3中,而不必在s3中拥有原始文件呢?或者我应该在s3中保存两个版本?任何关于如何实现这一目标的建议都会很棒。谢谢!如何在将图像直接上传到s3之前调整图像大小

回答

0

浏览器对这类事物的支持是有限的。您可以将大图像上传到您的服务器,使用您的服务器调整图像大小,然后从您的服务器上传调整大小的图像到s3(确保删除工作副本)。这对隐藏您的AWS信用也很有用。

另一种选择是使用一个服务,如:http://filepicker.io

+0

感谢您的建议晶体,为此,部分具体为浏览器支持有限?我一直在阅读,调整大小客户端变得越来越普遍,以便服务器资源得到释放。我并不需要旧的浏览器支持,我认为所有主流浏览器都支持canvas(http://caniuse.com/#feat=canvas)。 – kaustubhb

+2

如果是这样的话,那么试试:http://stackoverflow.com/questions/23945494/use-html5-to-resize-an-image-before-upload –

+0

谢谢!看起来非常有希望,我会给它一个镜头。 – kaustubhb

相关问题