我将不得不在S3中存储数百万个文件(将来会有很多TB)。 有没有限制? (不是价格:)),我问的是架构限制(比如 - 不要以这种方式存储,另一种方式会更好/更快)。 我的文件在层次结构中
/{country}/{number}/{code}/docs
我检查过我可以保持这种方式(通过REST轻松访问它们) (当然我知道S3以其他方式将它们保留在内部 - 对我来说并不重要)。 那么,有任何限制/陷阱吗?
答案 0 :(得分:2)
S3没有你想要的限制。这些文件实际上不在文件夹中,它们只是作为位置的字符串。使文件夹结构易于跟踪和组织。
您不希望列出"文件夹" S3中的内容找东西。 S3在提供目录列表方面很慢,因为它不是真正的目录。
您应该将整个路径/{country}/{number}/{code}/docs
存储在数据库中,或者逻辑应该是可重复的,以确保文件将位于该位置。
James Brady在这里提出了一个非常详细的答案,说明s3如何处理文件存储https://stackoverflow.com/a/394505/4179009
答案 1 :(得分:1)
如果类似的路径前缀,AWS S3确实有限制访问100req /秒,请参阅官方文档:http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
另一方面,分层方法使逻辑变得复杂。权衡取决于您的要求,其中一个好的选择是在URL前面使用至少4个符号长度的密钥(主ID或散列密钥)。如果国家数量有限,请尝试使用多个国家/地区代码作为存储桶名称的存储桶,如果需要,还可以帮助定义特定的物理位置。