node.js - 哪种方法更好?从客户端还是从服务器端上传文件?

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

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

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

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

同时我担心从客户端处理它的 key 的安全问题。

What are the pros and cons of upload a file from client side as well as server side?

最佳答案

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

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

  • 客户端直接上传到 S3 注意事项:
  • 安全性 - 您有许多选项可以为用户提供上传到 S3 的访问权限:a) 签名 URL b) 访问 key (可怕的想法)c) Cognito 提供临时访问 key 。建议:使用在您的服务器上生成的签名 URL,并且不要将任何类型的访问 key 交给客户端。
  • 成本 - 从客户端到 S3 的入站是免费的。
  • 性能 - 您的服务器不是性能方面的中间人。性能将受限于用户的 Internet 连接性能。客户将不太可能(但并非总是)因为上传问题不佳而责怪您。
  • 可靠性 - 有许多经过良好测试的库可用于上传到 S3。建议:投资一个生产质量的客户端(网络浏览器)库,可以处理互联网中断和其他问题、重试、良好的用户提示、后台上传等。
  • 复杂性 - 您仍然需要为服务器端和客户端编写代码(或购买)。但是,通过选择高质量的软件,您可以减少头痛。
  • 关于node.js - 哪种方法更好?从客户端还是从服务器端上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48698866/

    相关文章:

    amazon-web-services - 当资源已部分删除时,AWS 放大 : How to delete the environment,?

    c# - 如何配置客户端? AWS Elasticsearch 请求 C#

    amazon-web-services - 如何将 AWS Glue 表结构复制到 AWS Redshift

    ios - 带有进度 block 的 Amazon S3 iOS SDK 后台上传

    javascript - url.parse() 返回 undefined object 键

    node.js - 页面渲染速度快于我的数据获取速度

    javascript - 如何格式化带有多个问号的url并确保使用最后一个查询字符串

    node.js - 为什么我不能通过管道 npm install 到 sed,同时保留颜色和进度更新?

    amazon-web-services - 由于配置错误 : Malformed Lambda proxy response while sending back nested JSON value 执行失败

    amazon-web-services - 我们是否需要目录结构逻辑来在 Amazon S3/Cloudfront 上存储数百万张图像?