我正在开发一个图像托管网站,但我遇到了一些麻烦。我选择 Amazon S3 是因为它速度快、可扩展并且采用即用即付模式。
当我从网站上传图像时,我需要在服务器上处理它们 - 创建 3 种不同的尺寸,将数据插入数据库,然后准备上传到 S3(图像的所有 3 种尺寸) )。
我目前正在使用 plupload 进行上传,并且我现在将其全部设置为使用我的数据库作为图像存储 - 仅用于测试目的。但我刚刚意识到 - 上传到我的网络服务器、处理然后上传到 S3 意味着每个图像的上传时间加倍,对吗?
有什么聪明的方法来处理这种情况吗?
最佳答案
我们正在做类似的事情,处理 S3 中的文件和存储。主要区别在于我们的网络服务器和处理服务器位于 EC2 上,因此它们不会产生任何往返 S3 的传输成本,并且它们具有到 S3 的非常高的带宽。是否可以在 EC2 实例上运行图像调整大小过程?您可以:
直接接受上传到 EC2 实例上的服务器进程,立即处理它们,然后将图像保存到 S3,或者...
将图像直接上传到 S3,以某种方式向您的 EC2 进程发出图像到达的信号(可能是 SQS 队列),然后让您的服务器进程通过从 S3 抓取文件、处理图像并保存来响应该信号调整大小的图像返回到S3。
基本上,我是说您应该利用这一点(来自 AWS 网站上的 S3 描述):
There is no Data Transfer charge for data transferred between Amazon EC2 and Amazon S3 within the same Region or for data transferred between the Amazon EC2 Northern Virginia Region and the Amazon S3 US Standard Region.
关于c# - 将图像上传到S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027985/