twitter - 图片URL命名方案

标签 twitter amazon-s3 content-management-system eucalyptus

序言:我正在构建一种 CMS/社交网络服务,它将托管许多图像。

我打算使用 Eucalyptus/Amazon S3 来存储图像,并且想知道 Tumblr、Twitter 等网站使用的看似随机的文件名的重要性

31.media.tumblr.com/d6ba16060ea4dfd3c67ccf4dbc91df92/tumblr_n164cyLkNl1qkdb42o1_500.jpg

pbs.twimg.com/media/Bg7B_kBCMAABYfF.jpg

他们如何生成这些字符串,与仅为每个文件名递增一个整数相比,这会带来什么好处?也许只是随机字符?也许对整数进行哈希处理?

谢谢!

最佳答案

Twitter 使用一种称为“雪花”的编码方法。有github source

基本格式编码时间戳(42 位)、数据中心 ID(5 位)和工作人员 ID(数据中心的计算机;5 位)

对于推文 ID,他们将值写入长十进制数。推文 ID“508285932617736192”是十六进制值“070DCB5CDA022000”。前 42 位是时间戳(time_t 值为 070DCB5C + 纪元 1291675244)。接下来的五位是数据中心(在本例中为“1”),接下来的五位是工作人员 ID(“2”)。

对于图像,它们执行完全相同的操作,但使用 Base64 编码(遵循 URL 编码的 RFC 4648 标准;最后两个 Base64 字符是连字符和下划线)。

BwjA8nCCcAAy5zA.jpg 解码为 2014-09-02 20:23:58 GMT,数据中心 #1,工作人员 #7

关于twitter - 图片URL命名方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21919766/

相关文章:

iphone - 使用 iPhone 将图片发布到 Twitter

swift - 如何在 swift 中查看无法连接到 S3 时的错误

node.js - Geddy - 运行附加进程 - Twitter Stream

php - 如何将文件从 Amazon S3 流式传输到 Zip 中

php - Amazon S3 - 405 方法不允许使用 POST(尽管我允许在存储桶上使用 POST)

java - WordPress、CMS Made Simple 还是其他?

php - 十月 CMS : How to extend the backend user with role scope

php - 从 Php 插入日期

jquery - Twitter API 计数参数

twitter - Postman Twitter Api 身份验证错误 - 代码 : 32