【问题标题】:What is the URL schema of Tumblr images?Tumblr 图片的 URL 架构是什么?
【发布时间】:2013-05-25 20:08:39
【问题描述】:

Tumblr 上的图像文件的架构是什么? (我不是说HTTP) 我只发现存储图像的服务器的域是<n>.media.tumblr.com,其中n是1到31之间的数字,图像文件的名称以“tumblr_”为前缀。

我问是因为我想找到引用同一图像的 URL。

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

【问题讨论】:

    标签: image url tumblr


    【解决方案1】:

    概述

    当您将图像上传到 Tumblr 时,会生成多种尺寸(同一图像的)并存储在其网络中。

    上传后,您可以使用template tags 请求以下尺寸的图片:751002504005001280

    值得一提的是:

    1. 模板标签中的值是请求图像的最大尺寸。示例:图像的 400 版本可以是 251px400px 宽/高之间的任意位置。
    2. 可能没有高分辨率1280版本的图片可用。如果原始图像小于等于 500px,则不会生成 1280 版本。
    3. 照片集不会生成 100 版本。

    图片网址

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

    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

    1 这是一个服务器编号,可能因图像大小而异。 AFAIK 不能保证所有服务器上都可以使用图像大小。 @Ally 在 cmets 中提到,您可以从 URL 中删除这部分,仍然可以找到图像。
    2 这是 Tumblr 子域、目录(如果适用)和部分文件名。这对于所有尺寸都是相同的。
    3这是请求的尺寸(与模板标签匹配)和文件扩展名。

    使用模板标签为所有可用尺寸生成 URL。

    我找到的唯一万无一失的方法是使用相应的模板标签并将它们分配给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,并且您知道可用的大小。

    仅基于一个 URL 破解所有大小的 URL。

    使用此信息,URL 将变为:

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

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

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

    【讨论】:

    • 这是可能的,但它不是故障安全的。最初我使用 URL 并用不同的大小替换(第 3 部分)。然而事实证明,在某些情况下,具有新尺寸的图像与以前的尺寸不在同一服务器(第 1 部分)上。您可能会做一些事情,比如测试响应的 URL,如果 404,增加服务器编号,冲洗并重复,但它是 hacky。请问为什么只能获取img URL?
    • 一般来说,你不需要服务器的号码。 http://media.tumblr.com/... 应该可以工作。如果你死心塌地使用服务器号码,我不知道如何在 Tumblr 之外获取它。我会考虑一下的。
    • @mikedidthis 我测试了你的理论,但事实并非如此。但是我很好奇,所以我浏览了一个大博客并检查了图像的 URL。我的观点是 5/6 个月前 Tubmlr 必须更改系统,因为在那之前没有图片位于目录中。
    • 注意!我刚刚意识到,tumblr 不再允许使用没有服务器编号的 part1。这个答案已经过时了。
    • 仅供参考:正如@DavidMabodo 所说,服务器编号仍然是强制性的。你能刷新一下文本吗?不过这并不重要。其余所有信息似乎都是有效的。
    【解决方案2】:

    请记住,原始文件(全分辨率)以“_raw”后缀存储,而不是 _1280、_500、_250 等。

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

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

    【讨论】:

    • 你有你所说的例子吗?我无法让它工作......编辑:我认为它改变了just yesterday......
    • 是的,很遗憾,两天前 Tumblr 现在拒绝访问 _raw 文件。永远不要使用这个垃圾网站的另一个理由。
    猜你喜欢
    • 2011-12-01
    • 2013-06-20
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多