Chi*_*kar 42

我从其他社区了解到这个问题的原因是

"你不应该存储Facebook CDN URL长时间使用 - 它们可以随着时间的推移而改变.

请求实际图像并将其复制到您的服务器 - 或定期请求当前的CDN URL.

(您可能会尝试其他解决方法,例如从CDN链接中提取实际的图像源URL,但我建议不要这样做 - 因为它的格式也可能随时改变.)"

  • 我在哪里可以找到有关Facebook CDN限制的更多信息?我找不到任何关于长时间不保留facebook cdn urls的事情. (8认同)
  • 给定旧网址,如何从当前CDN网址请求新网址? (4认同)

小智 10

你不能存储Facebook图像网址很长一段时间,它会出于安全目的而过期,所以它将是一个更好的解决方案,在您的服务器中存储图像.

  • 出于安全考虑,最好复制图像? (5认同)
  • 我想这是为了保障Facebook收入。您无需热链接,它们不会为服务器处理或带宽提供费用来一次又一次地提供服务。 (2认同)
  • 但是在我需要显示这些图像的任何情况下会发生什么,我要么在每次需要提供图像时请求图像,在这种情况下他们每次都为处理和带宽付费,或者我每隔几天就会重新请求图像,这可能比热链接更多的处理和带宽。 (2认同)

d0z*_*cat 6

好久没更新了,不知道现在还能用吗?

您应该确保存储原始图像 URL,并使用 302 重定向解析器来获取 CDN URL,一个例子是https://scontent-ort2-1.xx.fbcdn.net/v/t45.1600-4/120202220_23846099766190042_1642096590788171162_n.jpg?_nc_cat=108&ccb=2&_nc_sid=2aac32&_nc_ohc=CE0J2Ao5cYkAX_JJ0Me&_nc_ht=scontent-ort2-1.xx&oh=f48cbb1bec21e685e0cbaaf6782a61a1&oe=5FE056E5,我们可以猜测oe=5FE056E5意味着过期,如5FE056E5(十六进制)-> 1608537829(十进制,UTC 格式),如果您解释一下这个时间戳你会发现时间大约是一个月后,也许我们可以猜测到期时间是在获得CDN URL后一个月左右?另一个类似的案例,可以参考:https ://stackoverflow.com/a/27596727/4721007