Создан HTTP-ответ, совпадающий с доступом к .jpg в Python - PullRequest
0 голосов
/ 07 октября 2010

Я хочу сервер файла изображения, но принимаю некоторые атрибуты для обработки, прежде чем вручную, используя Python и google app engine.

Где я обычно имел бы

'http://www.domain.com/image/desiredImage.jpg'

какизображение на сервер.

Я хочу иметь возможность добавить к нему некоторое отслеживание, чтобы я мог сделать что-то похожее на

'http://www.domain.com/image/desiredImage.jpg?ref_val=customerID'

Я решил, что лучший способ сделать этобудет иметь «прокси» для запросов изображений, таких как

'http://www.domain.com/imageproxy?img=imgID&ref_val=customerID'

, и URL-адрес imageproxy будет обрабатывать значение ref_val и обслуживать изображение на основе значения imgID из значения db.Blob хранилища данных.

Когда я захожу на URL прокси, он показывает изображение и обрабатывается нормально.Когда я использовал URL-адрес в других сторонних JSON-запросах Javascript для поиска URL-адреса изображения, я ничего не отображал.

Я думаю, корень моего вопроса в том, как получить доступ к

'http://www.domain.com/image.jpg'

отличается от доступа к

'http://www.domain.com/script_that_returns_image'

, где последний URL является скриптом Python, который выводит

    self.response.headers['Content-Type'] = 'image/jpeg'
    self.response.out.write(image)  #image a db.Blob property in google app engine

1 Ответ

1 голос
/ 07 октября 2010

Может быть пара вопросов.Перегружая изображение и предоставляя ему аргументы, как если бы это был сценарий, вы можете запускать средства песочницы / безопасности javascript, предназначенные для предотвращения атак с использованием межсайтовых сценариев.

Другой проблемой может быть «тупость» клиентского приложения, некоторые клиенты могут ожидать «.jpg» независимо от типа контента.

Откройте консоль javascript и посмотрите, какую ошибку вы получаете на рассматриваемом изображении в качестве первого шага.

В качестве альтернативы, вы можете захотеть быть более коварным в отношении того, как вы кодируетеваш элемент уникальности, вместо того, чтобы делать его CGI-ишем, попробуйте что-то вроде

http://domain.com/image-ref_val-customerID.jpg,, где customerID будет динамически обновляться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...