据我了解,您希望允许用户将图像上传到您的网站,一旦上传,您希望以某种方式处理它(调整大小等)。如果这是正确的,这是我建议的工作流程。
让主应用程序服务器为S3上载创建预先签名的URL。将此预签名URL发送给客户端。客户端将能够上传到S3。上传完成后,在后台进行处理(从S3-process-upload获取)。
这样,您就可以避免必须处理上传令牌。 S3还支持预签名URL的时间限制。
我正在考虑创建一个单独的服务器来进行这个图像处理和上传以降低我的主应用程序服务器上的负载,我不知道我是应该这样做还是我应该但我只是解决了一个想象的可扩展性问题。
在这种情况下分离逻辑是有意义的。我不会创建一个新的服务器,只是一个图像处理的后台进程。如果你需要扩展,你总是可以启动多个这样的后台进程。
如果映像服务器中的端点收到用于身份验证的共享密钥并创建上载令牌,那么安全性是否足够?
如上所述,使用S3接收图像上传。客户端将直接上传到S3,它将为您处理安全问题。
将这两台服务器都放在https上是否足以确保在中间攻击中无法窃取一名男子的秘密?
HTTPS提供的机密性足以防止中间人嗅探您的流量。使用AWS的预先签名的URL,您也不会通过所谓的签名发送秘密。这是一个 主题介绍 和 亚马逊自己的文档 了解更多信息。