在Tumblr上,图像文件的架构是什么?(我不是指HTTP协议)
我只知道存储图像的服务器域名为.media.tumblr.com,其中是介于1和31之间的数字,并且图像文件名以“tumblr_”为前缀。
我提问是因为我想找到引用同一图像的URL。
编辑:我还要处理来自其他来源的URL。
当您上传图像到Tumblr时,他们会在其网络中生成并存储同一图像的多个尺寸。
上传后,您可以使用模板标签 请求以下尺寸的图像:75、100、250、400、500 和 1280。
值得一提的是:
图像URL将是以下两种情况之一。第一个URL似乎与6个月前上传的图像相关联(这只是一个猜测),第二个URL似乎是用于更新的图像:
http://36.media.tumblr.com/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
或者http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
这可以分为三部分,两个变量和一个常量。
http://36
.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1
_500.jpg
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,并且了解可用的尺寸。
使用这些信息,URL将变为:
http://36.media.tumblr.com/83099a60d4e0cbeeb30d90394e222878/tumblr_o4qxa0n2BP1r6ec7zo1_500.jpg
以下是用于确认我们可以访问所有可用尺寸的测试:
你仍然不知道是否已生成1280尺寸,但这是更接近的一步。使用此方法,您可以将值(第3部分)替换为新大小,然后您应该能够获取图像。
http://media.tumblr.com/...
即可正常工作。如果您坚持要使用服务器编号,我不确定如何在Tumblr之外获取它。我会考虑一下。 - Ally<resolution>.jpg
之前加上_r1
或_r2
,删除这个子字符串有时不起作用,有时会编辑图像的 md5,有时会导致 Nginx 错误 404。 - Nakilon