根據Mike Krieger的this old Google Groups post,您可以通過API獲取URL,然後用distillery.s3.amazonaws.com
替換url的開頭。
例如:http://images.ak.instagram.com/profiles/profile_539562_75sq_1386973442.jpg
可以變成//distillery.s3.amazonaws.com/profiles/profile_539562_75sq_1386973442.jpg
,它可以在https上正常工作。
它看起來Instagram現在使用各種CDN,所以你必須有一點聰明與重寫規則。這是我的代碼
def sslify_instagram_cdn_url(url):
"""Intercept IG CDN urls and serve using a SSL-friendly CDN instead"""
replace_prefixes = (
('^http://images.ak.instagram.com(.*)$', '//distillery.s3.amazonaws.com%s'),
('^http://distilleryimage([0-9]*).ak.instagram.com(.*)$', '//distilleryimage%s.s3.amazonaws.com%s'),
('^http://origincache-([a-z]*).fbcdn.net(.*)$', '//origincache-%s.fbcdn.net%s'),
('^http://distilleryimage([0-9]*).s3.amazonaws.com(.*)$', '//distilleryimage%s.s3.amazonaws.com%s'),
('^http://scontent-([a-z]).cdninstagram.com(.*)$', '//scontent-%s.cdninstagram.com%s'),
('^http://photos-[a-z].ak.instagram.com/hphotos-ak-[0-9a-z]{3,4}/(.*)$', '//origincache-frc.fbcdn.net/%s'),
)
for prefix, replacement in replace_prefixes:
results = re.findall(prefix, url)
if not results:
continue
return replacement % results[0]
return url
被警告,如果Instagram更改其CDN設置,這可能會中斷。但是現在這是一個可行的方法。
從我的測試中看,Instagram越來越多地使用Facebook CDN(fbcdn.net URLs),這是個好消息,因爲這些可以簡單地用'//:'替換'http://' – johnboiles