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