gpt4 book ai didi

facebook - 如何有效地检索 facebook 照片 URL 的到期日期并在到期前更新它?

转载 作者:行者123 更新时间:2023-11-30 05:23:28 32 4
gpt4 key购买 nike

主要问题:

  • 应用程序缓存来自 facebook 照片 CDN 的 URL
  • 照片在某个时候过期

我的“技术”问题:

  • Facebook CDN“过期” header 似乎不可靠(或者我不知道如何处理它们)

使用 CURL 检索到期日期:

  • curl -i -X HEAD https://scontent-b.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/q82/p320x320/10458607_4654638300864_4316534570262772059_n.jpg?oh=9d34386036754232b79c2208c1075def&oe=54BE4EE2

  • 返回前一分钟:Mon, 05 Jan 2015 01:34:28 GMT

  • 现在再次调用它返回:Mon, 05 Jan 2015 01:35:27 GMT

  • 两次“Cache-Control”返回相同的结果:Cache-Control: max-age=1209600

到目前为止:

  • 似乎最可靠的方法之一是让后台作业始终检查照片,但这感觉有点“错误”,就像“暴力破解”一样。
  • 拥有后台作业可能会允许过期的图片在“更新”此照片 URL 之前提供服务

我的问题是:

  • 我是否应该使用 max-age 参数,即使它似乎没有改变?
  • 是否有使用 facebook 的 CDN URL 的可靠方法?
  • 关于应该如何实现的任何其他想法?
  • 是否应该使用 facebook API 来惩罚行为不端的编码人员?

可能的解决方案?

  • 在提供任何 CDN URL 之前检查 facebook 的最新 URL

    ~> 会大大减慢我的请求速度

  • 有一个更新 URL 和到期日期的后台作业

    ~> 可能会有过期的照片,而作业不会“捕获”它们

  • 将照片下载到我自己的CDN

    ~> 我猜这不是一个好的做法

更新: ~> 也许 Tinder 实际上在自己的 CDN 上缓存了用户的图片:https://gist.github.com/rtt/10403467所以 facebook 似乎可以接受它?

最佳答案

Expires 意味着一件事,它不是你想的那样:

The Expires entity-header field gives the date/time after which the response is considered stale. […]

The presence of an Expires field does not imply that the original resource will change or cease to exist at, before, or after that time.

RFC 2616 §14.21 , 强调我的

如果 Facebook 的图片 URL 在某个时间点后停止工作,那是他们的事。他们的 HTTP header 不必提及,事实上,也不必提及。

也就是说,我怀疑 oe URL 参数可能包含过期时间戳。如果我将 54be4ee2 解释为一个包含 UNIX 时间戳的十六进制数,我得到的是 2015 年 1 月 20 日,也就是距现在几乎整整一个月。这可能就是您正在寻找的值(value)吗?

关于facebook - 如何有效地检索 facebook 照片 URL 的到期日期并在到期前更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595679/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com