2016-12-06 2 views
0

Ich brauche nur die URL meines Bildes (base64), die gerade über Carrierwave auf Rackspace-Server hochgeladen wurde.Wie kann ich die hochgeladene Bild (base64) vollständige URL von der Carrierwave-Upload-Datei in Rackspace abrufen?

Das ist jetzt mein Controller.

def update_with_image 
    user = current_user 
    uploader = PictureUploader.new 
    uploader.store!(user_update_params[:profile_image]) // base64 image like this 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2w...' 

    // How can i update user_update_params[:profile_image] with the successfully uploaded profile_image url? 

    if user.update_attributes(user_update_params) 
     # Handle a successful update. 
     render json: user, status: 200 ,serializer: UserSerializer 
    else 
     render json: { errors: user.errors }, status: 422 
    end 
    end 

So nach uploader.store!(user_update_params[:profile_image]) Wie bekomme ich die URL der Datei?

Danke!

Antwort

0

Sie meinen das?

uploader = AvatarUploader.new 
uploader.store!(my_file)        # size: 1024x768 

uploader.url # => '/url/to/my_file.png'    # size: 800x600 
uploader.thumb.url # => '/url/to/thumb_my_file.png' # size: 200x200 

Aufruf url Methode auf dem Uploader sollten Sie die URL erhalten. github

Update: von Trägerwelle

GitHub Zitiert

Sie können Ihre CDN Hostnamen in der Konfiguration optional enthalten. Dies wird dringend empfohlen, da ohne jede Anfrage ein Nachschlagen dieser Informationen erforderlich ist.

config.asset_host = "http://c000000.cdn.rackspacecloud.com" 

In Ihrem Uploader, stellen Sie den Speicher zu: Nebel

class AvatarUploader < CarrierWave::Uploader::Base 
    storage :fog 
end 

Das ist es! Sie können die Methode CarrierWave::Uploader#url weiterhin verwenden, um die URL in die Datei Rackspace Cloud Files zurückzugeben.

+0

Oh danke! aber kann ich die volle URL davon erhalten "http: //myclound.rackspace .." – user3403614

+0

Sie sollten in der Lage sein, das zu bekommen. Nur für den Fall, dass Sie faul sind, durch die Dokumentation zu gehen, werde ich das auf meine Antwort kopiert haben :) –

+0

Es funktioniert immer noch nicht, also muss ich base64 'Daten konvertieren: image/jpeg; base64,/9j/4AAQ' zum anderen Dateityp? – user3403614

Verwandte Themen