Получение изображения из Firebase и создание полосы. Файл - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь передать файл в Stripe из базы данных Firebase, используя метод stripe.File.create(). Вот код, который я использую:

file_url = storage.child("/path/to/file").get_url(token=None)
response = requests.get(file_url, stream=True)
    img = Image.open(BytesIO(response.content))
    stripe.File.create(
        purpose="identity_document",
        file=img
    )

Но когда я запускаю этот код, я получаю:

Request req_E7fskNVgpHHlRm: Invalid hash

Я полагаю, что получаю правильное изображение из firebase, так как могу запустить следующую строку и сохранить изображение на локальном диске:

img.save("test.jpg")

Но Stripe, похоже, не нравится формат файла, который я ему предоставляю. Я считаю, что файл должен быть предоставлен в двоичном режиме, поэтому, возможно, мне просто нужно отредактировать строку img = Image.open(BytesIO(response.content)), чтобы получить файл в двоичном режиме.

Любые отзывы приветствуются.

1 Ответ

0 голосов
/ 22 мая 2019

Я понял это.img = Image.open(BytesIO(response.content)) создает объект JpegImageFile, который является изображением.Но Stripe ожидает файл, похожий на io.BufferedReader объект.Итак, Stripe говорит, что вы предоставляете изображение, когда оно действительно хочет файл.Чтобы решить эту проблему, просто измените строку img = на:

imgFile = BytesIO(response.content)
...