哪种方法更好?从客户端或服务器端上传文件?

时间:2018-02-09 04:44:58

标签: node.js amazon-web-services amazon-s3 file-upload

我想将文件上传到AWS s3。我使用nodejs作为服务器。

我想知道哪种方法更好。从客户端或服务器端上传?

由于文件大小很大,我担心发送到服务器端并处理它的带宽。

与此同时,我担心从客户端处理密钥的安全问题。

  

从客户端和服务器端上传文件的优缺点是什么?

2 个答案:

答案 0 :(得分:3)

客户 - >您的服务器 - > S3上传注意事项:

  • 安全性 - 您如何控制将文件上传到服务器的人员?
  • 安全性 - 您如何控制将大量文件上传到服务器?
  • 费用 - 您服务器的入站流量是免费的。我们将向您收取从您的服务器到S3的出站费用。
  • 性能 - 实例的类型和大小将决定从用户到服务器然后从服务器到S3的整体上传性能。
  • 可靠性 - 您的服务器需要可供用户上传到您的服务器。
  • 可靠性 - 您的服务器需要可靠的代码才能将文件传输到S3。
  • 复杂性 - 您可以控制并负责在客户心目中将文件传输到S3。将问题上传到您的服务器将是您的错误,客户的想法。

客户端直接上传到S3注意事项:

  • 安全性 - 您有许多选项可以为用户提供上传到S3的访问权限:a)签名URL b)访问密钥(可怕的想法)c)Cognito提供临时访问密钥。建议:使用在您的服务器上生成的签名URL,并且不要将任何类型的访问密钥交给客户端。

  • 成本 - 从客户端到S3的入站是免费的。

  • 性能 - 您的服务器在性能方面不是中间人。性能将仅限于用户的Internet连接的性能。客户不太可能(但并非总是)因上传不良问题而责怪您。

  • 可靠性 - 有许多经过良好测试的库可用于上传到S3。建议:投资生产质量客户端(Web浏览器)库,处理Internet中断和其他问题,重试,良好的用户提示,后台上传等。

  • 复杂性 - 您仍然需要为服务器和客户端编写代码(或购买)。但是,通过选择高质量的软件,您可以减轻您的头痛。

答案 1 :(得分:1)

在大多数情况下来自服务器端。以下是将文件上载到AWS S3时的重要事项。

  • 用户上传认证,
  • 基本转换/调整性能,
  • 手动逻辑,用于控制可以上传的人数和数量,
  • 保护您的AWS密钥