Tumblr图像的URL架构是什么?

时间:2013-05-30 09:50:43

标签: image url tumblr

Tumblr的图像文件的架构是什么? (我不是指HTTP) 我只知道存储图像的服务器的域是<n>.media.tumblr.com,其中n是1到31之间的数字,图像文件的名称前缀为“{{1 }}

我问,因为我想查找引用相同图片的网址。

编辑:我也在处理来自其他来源的网址,而不仅仅是Tumblr。

2 个答案:

答案 0 :(得分:52)

概述

将图像上传到Tumblr时,会生成多个(同一图像的)大小并存储在其网络中。

上传后,您可以使用template tags以下列尺寸申请此图片: 75 100 250 400 500 1280

值得一提的是:

  1. 模板标记中的值是请求图像的最大大小。示例: 400 版本的图片可以是 251px 400px 宽/高之间的任何位置。
  2. 可能没有可用的高分辨率 1280 版本的影像。如果原始图片 500px 或更低,则不会生成 1280 版本。
  3. 相册不会产生 100 版本。
  4. 图片网址

    图片网址将是以下两者之一。第一个网址似乎与超过6个月前上传的图片相关联(这是一个猜测),第二个网址似乎适用于较新的图片:

    http://36.media.tumblr.com/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
    

    http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
    

    网址架构

    这可以分为三个部分,两个变量,一个常数。

    1. http://36
    2. .media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1
    3. _500.jpg
    4. 1 这是一个服务器编号,每个图像大小可能不同。 AFAIK无法保证所有服务器上都可以使用图像大小。 @Ally在评论中提到你可以从URL中删除这部分,仍然可以找到图像。
      2 这是Tumblr子域,目录(如果适用)和部分文件名。对于所有尺寸,这都是相同的 3 这是请求的大小(与模板标记匹配)和文件扩展名。

      使用模板标记为所有可用尺寸生成网址。

      我找到的唯一简单方法是使用相应的模板标记并将其分配给data-属性。

      示例模板代码:

      <img src="{PhotoURL-100}" data-250u="{PhotoURL-250}" data-400u="{PhotoURL-400}" data-500u="{PhotoURL-500}" data-1280u="{block:HighRes}{PhotoURL-HighRes}{/block:HighRes}" />
      

      示例呈现代码:

      <img src="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_100.jpg" data-250u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_250.jpg" data-400u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_400.jpg" data-500u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg" data-1280u="http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_1280.jpg" >
      

      使用此方法,您可以确定自己拥有正确的网址,并且知道可用的尺寸。

      仅基于一个网址黑客攻击所有规模的网址。

      使用此信息,URL将变为:

      http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
      

      以下是确认我们可以访问所有可用尺寸的测试:

      您仍然不知道是否已生成1280尺寸,但距离它更近了一步。使用此方法,您可以使用新大小替换值(第3部分),能够获取图像。

答案 1 :(得分:1)

请记住,原始文件(以其完整分辨率存储)使用'_raw'后缀存储,而不是_1280,_500,_250等。

它们通常存储在data.tumblr.com上(他们的CDN域名)。

URL方案中的路径是从原始(原始)文件的SHA1校验和生成的。