Я пытаюсь заставить ссылку делиться фотографиями на Facebook.Отладчик общего ресурса Facebook говорит, что изображения не кодируются с помощью gzip, что, по-видимому, является обязательным требованием.
Используя curl, я могу подтвердить, что говорит Facebook.Все документы, которые я могу найти, говорят, что кодирование gzip должно происходить автоматически, поэтому я не уверен, как это исправить.
Вот вывод curl:
$ curl -v -D /tmp/h -H "Accept-Encoding: gzip" http://m.kaon.com/ss/5907657076506624.jpg > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 172.217.3.115...
* TCP_NODELAY set
* Connected to m.kaon.com (172.217.3.115) port 80 (#0)
> GET /ss/5907657076506624.jpg HTTP/1.1
> Host: m.kaon.com
> User-Agent: curl/7.54.0
> Accept: */*
> Accept-Encoding: gzip
>
< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Content-Type: image/jpeg
< X-Cloud-Trace-Context: 5b0c467df46cb34732e5721733742742
< Date: Wed, 13 Mar 2019 15:11:08 GMT
< Server: Google Frontend
< Content-Length: 128384
<
{ [3516 bytes data]
100 125k 100 125k 0 0 620k 0 --:--:-- --:--:-- --:--:-- 623k
* Connection #0 to host m.kaon.com left intact
$ cat /tmp/h
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: image/jpeg
X-Cloud-Trace-Context: 5b0c467df46cb34732e5721733742742
Date: Wed, 13 Mar 2019 15:11:08 GMT
Server: Google Frontend
Content-Length: 128384
А вот код, которыйобслуживает образ:
class SSHandler(webapp2.RequestHandler):
def get(self, id):
a = ScreenShotModel.get_by_id(int(id))
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(a.image)
Есть какой-то параметр app.yaml, который мне не хватает, или, возможно, мне нужно добавить что-то еще в заголовки?Или мне самому искать заголовок accept-encoding и делать gzip в моем коде python?