我正在建立一个网站,用户将在该网站上载图像,然后该图像最终必须存储在Amazon S3中。现在,考虑到可以直接从浏览器上传的可能性,我考虑了以下选项:
执行2)的最佳方法是什么,以便可以最大程度地减少需要部署的服务的覆盖范围。
感谢任何指针!
欢呼维沙尔
我不会因为对用户体验不利而选择选项1。
[我建议以下内容:仅将原始图像上传到s3,然后当客户端请求调整大小的变体时,从s3中检索它,调整大小并通过CDN传递给客户端。
这一次可以调整它们的大小,因为:
我已经编写了一个库https://github.com/mgmtio/simgr来帮助我在自己的应用中执行此操作。
G'day Vishal,
我想您最大的图像将比您的较小尺寸大得多,后者可能是缩略图或其他。因为图像文件的大小或多或少地随图像的area缩放,所以这种效果将更加明显。
因此,您创建的任何将最大图像从S3中拉出以重新缩放的服务都可能使用比仅从客户端上载所有三个图像的版本更多的S3带宽!因此,仅执行选项1可能更明智。
编辑:如果您确实要避免上传多个文件,我仍然不会使用“直接上传到S3”选项,因为a)您必须在S3和b)上检测新文件。相比,如果您将图像接收到节点应用程序中,然后在其中调整大小,然后将各种大小保存到S3中,则所运送的数据总量将仍然更大。
This question discusses image manipulation in Node.
-----尼克
我建议使用Image CDN来加快图像传送。检查here
Amazon S3较慢,图像较重] >>
众所周知,直接提供Web内容时,Amazon S3速度较慢。一之所以慢,是因为一个桶只能放在一个桶中地理位置。创建位置时已选择位置桶。例如,如果您的存储桶是在以下位置的Amazon服务器上创建的加利福尼亚,但是您的用户在印度,那么图像仍然会来自加利福尼亚。此地理距离导致图像变慢在您的网站上加载。
此外,在S3上看到非常重的图像尺寸和高字节大小。人们只能推测原因,但这可能与发布工作流程和S3作为存储空间的便利。
在保持S3的工作流程的同时,使用ImageEngine这样的图像传送方式和便利级别。
当我说实现起来非常简单时,请相信我...我非常重复。
创建帐户后进行必要的设置后,使用ImageEngine域的参考图像
http://wq77sh2y.cdn.imgeng.in/path/image.jpg
或
使用前缀功能的参考图像
http://wq77sh2y.cdn.imgeng.in/http://example.com/path/image.jpeg