我有一个NodeJS REST API,它有用于上传资产(主要是图像)的端点。我通过CDN分配我的资产。我现在如何使用多部分表单调用我的端点/资产/上传,API为资产创建数据库资源,然后使用SFTP将图像传输到CDN源。成功后,我会回复上传资产的网址。
我注意到相对较小的文件最昂贵的操作是通过SFTP连接到原始文件。
所以我的第一个问题是:
1。始终保持连接的存在是一个坏主意,以便我可以 始终重复使用它来同步我的文件。
我的第二个问题是:
2。如果我考虑拥有可以自行处理HTTP请求的CDN来源,让我的API处理SFTP传输到CDN源是不是一个坏主意吗?
答案 0 :(得分:2)
简答:(1)保持连接存活并不是一个坏主意,但它带来了复杂性。我建议首先尝试不重用连接。并且(2)上传应该通过API,但可能有方法来优化API到CDN传输的方式。
长答案:
<强> 1。始终保持连接处于活动状态是一个坏主意,以便我可以始终重复使用它来同步我的文件。
保持连接活着通常并不是一个坏主意。一般来说,重用连接可以提高网站性能。
然而,它确实带来了一些并发症。您需要确保连接已启动。您需要确保如果连接断开,则重新创建它。在某些情况下,SFTP客户端认为连接仍然存在,但实际上并非如此,您需要重试。您还需要确保在一个请求使用连接时,没有其他请求可以这样做。您可能希望使用一个连接池,以便您可以同时为多个请求提供服务。
如果您很幸运,SFTP客户端库已经处理了这个问题(请参阅它是否支持连接池)。如果你不是,你必须自己做。
我的建议 - 首先尝试不重复使用连接,然后查看网站的性能是否可以接受。如果不是,则考虑重用连接。但要小心。
<强> 2。如果我考虑拥有可以自行处理HTTP请求的CDN来源,让我的API处理SFTP传输到CDN源是不是一个坏主意吗?
由于以下几个原因,让HTTP请求通过API通常是个好主意: