architecture - Amazon S3 文件和路径命名架构决策

标签 architecture hash amazon-s3 cdn

我有兴趣了解为什么像 Twitter 和 Facebook 这样的许多服务都按照他们的方式命名他们的 CDN 文件。看着http://25.media.tumblr.com/tumblr_m6m6g57NgY1qdhfhho2_1280.jpg我有一些观察性问题:

  1. 他们是否使用多个子域(25.media、26.media 等)从单个域卸载 DNS 查询? storage.tumblr.com 似乎足以存储他们所有的图片,因为 S3 只有一个大桶的概念。
  2. 他们是否在文件名中插入散列字符串以防止从网络收集工具中进行连续遍历?这似乎是个好主意。获取文件名并在其后附加一些垃圾,对其进行哈希处理,并将该哈希值插入到 tumblr_XXXXXXXXXXXXXXXXXX_1280.jpg 文件名中。

最佳答案

  1. 浏览器对它们可以向单个域发出的并行请求的数量有限制,使用多个子域意味着更多的并行请求。请参阅:http://yuiblog.com/blog/2007/04/11/performance-research-part-4/

  2. 出于您描述的原因,他们可能正在使用看似随机的文件名。但更有可能的是,他们使用它来确保文件名的唯一性,并在文件更改时使缓存失效,从而确保所有用户看到的是最新版本。

关于architecture - Amazon S3 文件和路径命名架构决策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11333482/

相关文章:

ruby-on-rails - 对于 ruby​​ 中的对象散列, hash.keys.index(obj) 有效但 hash.has_key?(obj) 无效。为什么?

mysql - 我可以将 ruby​​ 哈希存储在 mysql 数据库列中吗

amazon-web-services - 如何使用glue启动AWS cloudformation堆栈?

go - 使用 aws-sdk go 从 COS 读取文件

amazon-web-services - Amazon s3 存储桶的 https 安全异常

sql-server - 多个数据库与具有逻辑分区数据的单个数据库

asp.net - DotNetNuke 是可靠的应用程序开发框架吗?

ruby-on-rails - Wordpress 用户迁移到 Rails 设计

c# - 开发一个类似于微软的5星开发者考试软件? (测验引擎)

javascript - Backbone 和 Django,寻找更好的客户端架构