2

FileUpload API를 사용하여 파일을 Stripe에 업로드하는 데 문제가 있습니다. 내 사이트에 파일을 업로드하기 위해 CarrierWave S3을 구현했습니다. Stripe API 문서를 모두 따라 왔지만 어떤 이유로 든 "No such file or directory @ rb_sysopen"오류가 발생합니다. (- https://myapp.s3.amazonaws.com/uploads/user/uploaded_file/1/file.png)Rails, Stripe, CarrierWave, FileUpload, 해당 파일 없음

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

이는 S3의 링크는 "해당 파일"오류를 반환합니다

다음은 업로드 내 컨트롤러 코드입니다. 재미있는 점은 브라우저에서 해당 링크로 이동하면 업로드 된 파일이 존재하고 표시된다는 것입니다.

의견이 있으십니까? 나는 명백한 것을 놓치고 있는가?

감사합니다!

+0

작동 시켰습니까? @gitastic –

답변

0

Amazon S3에서 Striple File Upload로 직접 파일을 가져올 수 없습니다. 그러나, 나는 첫 번째 웹 서버에 아마존 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