繁体   English   中英

上传到 S3 之前的 AWS 临时文件?

[英]AWS temporary files before uploading to S3?

我的 Laravel 应用程序允许用户上传图片。 目前,当用户上传他们的图片时,它们会存储在服务器上的一个临时位置。 然后,cron 作业修改上传的图像(压缩它们等),并将它们上传到 S3。 无法上传到 S3 的超过 48 小时的任何临时文件都将被另一个 cron 作业删除。

我已经设置了一个 Elastic Beanstalk 环境,但我想到将上传的图像存储在实例的临时目录中是有风险的,因为实例可以在必要时创建和销毁。

那么,我将如何以及在何处存储这些临时文件,以免它们面临被实例删除的风险?

正如评论中所讨论的,我认为将文件上传到 S3 是最佳选择。 据我所知,不可能阻止 Elastic Beanstalk 破坏 ec2 实例,除非您想摆脱所有缩放和实例故障/自动替换功能。

我不太了解的一个选项可能是 AWS EBS。 “Amazon Elastic Block Store (Amazon EBS) 提供持久块存储卷,供 AWS 云中的 Amazon EC2 实例使用。” 我对 EBS 没有任何直接经验,最重要的问题当然是 EBS 是否真正持久,即使在 ec2 实例被销毁后也是如此。 由于 EBS 具有与之相关的成本,因此似乎既然您已经在使用 S3,那么 S3 就是可行的方法。

S3 有一个称为对象生命周期管理的功能,您可以使用它来自动删除文件,方法是将它们设置为在上传 2 天后过期。

您可以:

A) 为临时文件添加前缀以将它们放入 S3 伪文件夹(即Temp/ ),将对象生命周期过期规则应用于该特定前缀(或“文件夹”),并将其中的文件用作真实来源对于从中派生的新文件 post-manipulation。

要么

B) 专门为临时文件创建一个 S3 存储桶。 从那里操作文件并复制到生产存储桶。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM