2

FileUpload APIを使用してファイルをStripeにアップロードしようとして問題が発生しました。私は自分のサイトにファイルをアップロードするためにCarrierWave S3を実装しました。私はすべてのStripe APIのドキュメントに従ってきましたが、何らかの理由で「No such file or directory @ rb_sysopen」というエラーが出ています。ここでRails、Stripe、CarrierWave、FileUpload、そのようなファイルなし

は、アップロードのための私のコントローラのコードです:

@id_upload = Stripe::FileUpload.create(
    :purpose => 'identity_document', 
    :file => File.new(@user.uploaded_file.url) 
) 

これはS3のリンクで、「そのようなファイル」エラーが返されます( - https://myapp.s3.amazonaws.com/uploads/user/uploaded_file/1/file.png)。面白いのは、ブラウザのリンクに移動し、アップロードされたファイルが存在し、それが表示されていることです。

どのような考えですか?私は明白な何かを欠いていますか

ありがとうございます!

+0

あなたはそれを機能させましたか? @gitastic –

答えて

0

Amazon S3からStriple File Uploadにファイルを直接取得できませんでした。しかし、私は最初のWebサーバーにアマゾンS3からファイルをダウンロードするためにアマゾンのリソースをダウンロードするには、以下のリンクをたどり、その後、ストライプに送信: https://aws.amazon.com/blogs/developer/downloading-objects-from-amazon-s3-using-the-aws-sdk-for-ruby/

gemfile:あなたのクライアントで

gem 'aws-sdk', '~> 2' 

s3 = Aws::S3::Client.new 
    resp = s3.get_object({ bucket:'your-bucket-name', key: current_user.stripe_managed_account.personal_id_document.file.path }, 
    target: '/tmp/personal_id_file_#{current_user.id}') 

    stripe_file_upload = 
     Stripe::FileUpload.create(
     :purpose => 'identity_document', 
     :file => File.new('/tmp/personal_id_file_#{current_user.id}') 
    ) 

    account ||= Stripe::Account.retrieve(current_user.stripe_managed_account.stripe_account_id) 
    account.legal_entity.verification.document = stripe_file_upload.id 
    account.save