5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Camoでプロキシした画像の元URLを展開するワンライナー

Posted at

ワンライナー

ruby -r uri -e "puts [URI.parse(STDIN.read).path.split('/').last].pack('H*')"

使用方法

標準入力として Camo のプロキシURLを受け取って、元画像のURLを出力するようになっています。

$ echo 'https://camo.qiitausercontent.com/.../....' | ruby -r uri -e "puts [URI.parse(STDIN.read).path.split('/').last].pack('H*')"
https://qiita-image-store.s3.amazonaws.com/0/7048/0ca50e9d-7428-5708-be67-1321af6465de.gif

解説

QiitaやGitHubでは埋め込んだ画像は Camo でプロキシして配信されます。
なので、↓のように元の画像のURLから変形されて異なるURLになります。

https://qiita-image-store.s3.amazonaws.com/0/7048/0ca50e9d-7428-5708-be67-1321af6465de.gif

↓

https://camo.qiitausercontent.com/4bfce19b86cb7d5eaf053c5aa4b9fb297904225a/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f373034382f30636135306539642d373432382d353730382d626536372d3133323161663634363564652e676966

ただ、変形後のURLには元のURLがエンコードされて埋め込まれているので、それを展開してあげれば、変形後のURLから元の画像URLを取り出せるというわけです。

ちなみに、Camoではsecret_keyと元画像URLをdigestを計算することで、sercet_keyを知らないとvalidなプロキシURLを作れないようになっているのですが、画像URLのエンコードではsecret_keyを使用していないので、secret_keyを知らなくても元画像が何なのか取り出すことができます。

参考URL

ちなみに

Markdownの元ソース見れるならそっち見たほうが早いです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?