2

Ich habe ein Problem beim Hochladen einer Datei mit ihrer FileUpload API nach Stripe. Ich habe CarrierWave S3 zum Hochladen von Dateien auf meiner Website implementiert. Ich habe alle Stripe-API-Dokumentation gefolgt, aber aus irgendeinem Grund gibt es mir einen Fehler "keine solche Datei oder Verzeichnis @ rb_sysopen".Rails, Stripe, CarrierWave, FileUpload, keine solche Datei

Hier ist mein Controller-Code für den Upload:

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

dies wird die "keine solche Datei" Fehler zurück, mit dem s3 Link (- https://myapp.s3.amazonaws.com/uploads/user/uploaded_file/1/file.png). Die lustige Sache ist, wenn ich zu diesem Link in meinem Browser gehe, die hochgeladene Datei existiert, und es wird gezeigt.

Irgendwelche Gedanken? Fehle ich etwas Offensichtliches?

Danke!

+0

hast du es funktioniert? @gitastic –

Antwort

0

Ich konnte die Datei nicht direkt von Amazon S3 zu Strippe Datei hochladen. Aber ich folgen Sie den folgenden Link, um die Amazon-Ressource zum Download-Datei von Amazon S3 auf dem Web-Server zuerst herunterladen, dann ist es zu Streifen senden: https://aws.amazon.com/blogs/developer/downloading-objects-from-amazon-s3-using-the-aws-sdk-for-ruby/

gemfile:

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

In Ihrem Client:

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