如何使用Ruby从S3网址上传Stripe identity_document?

时间:2018-12-05 12:22:51

标签: ruby stripe-payments

我需要像这样直接从S3 URL用stripe-ruby将身份证明文件发送到Stripe:

picture_s3_url = "https://s3-eu-west-1.amazonaws.com/bucket/uploads/foo.png"

file = File.new(open(picture_s3_url))

token = Stripe::FileUpload.create(
    {
        purpose: "identity_document",
        file: file
    },
    {
        stripe_account: stripe_account_id
    }
)

如果可能的话,无需创建本地文件。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您对File.new的使用似乎有点奇怪。您应该改用IO.binwrite

IO.binwrite('img.jpg', open('https://picsum.photos/200').string)

token = Stripe::FileUpload.create(
    {
        purpose: "identity_document",
        file: File.new('img.jpg')
    },
    {
        stripe_account: stripe_account_id
    }
)

可以选择使用Tempfile来确保文件名唯一。