0

我正在尝试使用该 stripe.File.create()方法将文件从 firebase 数据库传输到 Stripe。这是我正在使用的代码:

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))即可以二进制模式获取文件。

任何反馈表示赞赏。

4

1 回答 1

0

我想到了。img = Image.open(BytesIO(response.content))创建一个JpegImageFile对象,这是一个图像。但是 Stripe 需要一个文件,比如io.BufferedReaderobject. 所以 Stripe 是说你正在提供一个图像,而实际上它只需要一个文件。要解决此问题,只需将img =行更改为:

imgFile = BytesIO(response.content)
于 2019-05-21T22:20:30.320 回答