File upload CDN和服务器架构:我的web应用的图片上传功能

File upload CDN和服务器架构:我的web应用的图片上传功能,file-upload,server,cdn,File Upload,Server,Cdn,我很难理解服务器体系结构和CDN中文件存储系统的一部分 这是我的环境: 1.)1 nginx负载平衡器 2.)2个node.js express.js web服务器 3.)1 mongodb数据库 4.)1 CDN 我想做什么? 我正在尝试实现一个功能,我的客户可以上传那里的个人资料图片和他们的产品的图像到我的服务器。我研究了最佳实践,发现将上传文件保存到CDN最有效 到目前为止我了解到什么? 我知道在负载平衡环境中,我需要在不同的服务器中分离媒体文件。然而,我对数据流是如何工作的感到困惑。(我

我很难理解服务器体系结构和CDN中文件存储系统的一部分

这是我的环境:

1.)1 nginx负载平衡器

2.)2个node.js express.js web服务器

3.)1 mongodb数据库

4.)1 CDN

我想做什么?

我正在尝试实现一个功能,我的客户可以上传那里的个人资料图片和他们的产品的图像到我的服务器。我研究了最佳实践,发现将上传文件保存到CDN最有效

到目前为止我了解到什么?

我知道在负载平衡环境中,我需要在不同的服务器中分离媒体文件。然而,我对数据流是如何工作的感到困惑。(我不是问如何为node.js express.js实现这个功能,我只是问数据流的概念)

我不明白什么?

我的问题是:

1.0)我是否还需要在web服务器上保存这些图像

1.1)如果是(1.0),我是否需要向堆栈中添加一个web服务器来保存从用户上传的所有图像,以便从该服务器加载CDN

2.)当用户开始上传他们的图像时,数据应该如何流动

这些步骤让我很困惑

步骤1:用户选择要上载的文件

步骤2:将数据上载到

步骤3:服务器是否上载到CDN

或者用户应该直接上传到CDN服务器吗


非常感谢!:)

这取决于您的要求:) 如果您直接希望用户将图像上载到CDN(Akamai),则可以创建对图像的FTP访问(希望这些用户更少)。然后他们可以使用任何像WinScp这样的软件,直接将图像上传到CDN

然后,在akamai配置中,您可以定义一条规则,表示对于任何图像请求,请转到akamai Netstorage并对其进行服务器处理


老实说,在实施之前,我建议在架构设计上花更多的时间。

如果我太迟了,请告诉我您采取了什么方法。我尝试的一种方法是:

  • 当从服务器上的客户端接收文件时,将其直接上传到某个CDN上,阻止用户直到上传文件。我试过S3
  • 将响应返回给使用当前url上载文件的用户
  • 启动一个异步任务,将图像大小调整为所需大小,然后将其上载到CDN,然后将url更新到此新文件

  • 通过这种方法,用户可以立即看到上传文件大小的图像,稍后我们上传调整大小的文件后,我们将使用该图像。

    look:我真的建议首先与您的CDN交谈。CDN在上传场景中所带来的价值在供应商之间差异很大,但在任何情况下都必须在您的CDN上进行专门配置。您可能最终决定根本不使用CDN进行上传。如果您为上传配置CDN,您将看到它如何与您的源服务器交互,您的大多数问题将得到澄清。