上传到AWS S3最佳实践

时间:2018-01-22 18:28:28

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

我正在创建一个节点后端应用程序,我有一个可以分配文件的实体。

我有以下选择:

  1. 用户在前端表格中选择文件后立即发出请求并上传文件,并在用户提出创建/更新请求时将其分配给实体
  2. 在创建/更新实体的同一请求中上传文件
  3. 我想知道这种情况是否有最佳做法。我不能真正决定什么更好。

1 个答案:

答案 0 :(得分:2)

这是其中之一"依赖"答案,这取决于你上传的方式,以及你是否计划清理你的S3桶。

我建议先创建实体(选项#2),因为您可以存储S3文件与该实体的对应关系。如果您尝试选项#1,则可能有未跟踪的文件(或某种临时区域),这可能需要在将来的某个时间进行清理。 (如果文件很小,可能永远不会有问题,你每个月只需要花费0.03美元/ GB的费用:)

我在一些看起来像选项#1的网站上看到过,文件包含在我的表单/文档中,因为我正在编辑"。从我的缓冲区粘贴图像特别甜,有时我会在上传时看到文本的占位符,在完成时显示图片。现在我认为这些"文件"实际上是以某种草稿状态保存在他们的服务器上,所以无论如何它可能是你的选项#2。您可以执行相同的操作来创建草稿实体,并在以后完成它(然后在某些时候有办法清理草稿及其附件)。

此外,根据您需要实现的存储桶隐私,请查看AWS Cognito to upload directly from the browser。您可以通过不使用服务器作为传递来节省服务器带宽并减少请求时间。