Enr*_*ene 8 php amazon-s3 amazon-ec2
正如我的问题标题所说,我想知道这是否是一个好习惯,
我知道我可以将它安装在 EC2 实例中,但我想知道,随着我将添加更多实例来扩展我的应用程序,这是否会导致一些问题;你有这方面的经验吗?
我使用 S3 允许通过 PHP 脚本上传文件,所以基本上问题是:
使用安装是一个好习惯还是有更好的方法来处理用户文件上传?
提前致谢
cyb*_*x86 14
如果您使用 S3 来存储来自用户上传的数据,尤其是在分布式环境中,那么一个重要的考虑因素是 S3 是“最终一致”的(尽管有些区域是先读后写一致)。这样做的结果是您可能成功上传文件,但如果您随后立即检查它是否存在,可能会发现它不存在。对于更新或删除等场景,这个问题更为明显,在这种情况下,即使是写后读一致性也无济于事。
无论您采用何种方法,以上内容都适用于您上传到 S3 的内容。事实上,对于 S3 可能会遇到的大多数问题,情况都是如此——与其说是用于存储数据的方法,不如说是 S3 的局限性可能是最有问题的。
S3fs 使用 S3 API - 就像 PHP(或其他)SDK 一样。此外,S3 旨在处理相当高级别的并发性 - 因此(除了一致性问题)将其安装在多个实例上应该没有问题(请记住,它不是传统的文件系统 - 诸如锁定之类的问题,等在 S3 端处理)。
也就是说,每种实现都有一些潜在的优点和缺点:
S3FS:
开发工具包:
在“安全”方面,您可以指“防止数据损坏”或“防止未经授权的访问”。对于前者,SDK 可能有助于处理最终一致性(以更详细的错误的形式),但底层存储是相同的,我希望差异很小。关于访问控制 - 您可以使用 IAM 创建一个受限帐户,但该帐户仍然需要对您的 S3 文件进行读/写访问。两者都应该足够安全,在任何一种情况下,您的系统都需要受到损害才能访问您的 S3 存储桶 - 但是,我建议使用 S3fs(因为凭据通常存储在 webroot 之外,并且根本无法通过PHP)的安全性稍好一些。
个人意见:对于只有一个上传目录(例如一个使用它的站点)并且访问相当简单(只需要上传文件并偶尔更新/删除)的情况,我更喜欢 s3fs。如果您需要更复杂的访问(例如部分下载、多个存储桶等)或将 S3 SDK 用于其他目的,那么我也会坚持使用 SDK 进行上传。
归档时间: |
|
查看次数: |
13656 次 |
最近记录: |