2011-01-17 5 views

Antwort

2

Carrierwave sollte die Dateien von S3 automatisch für Sie entfernen. Ich habe das gerade in einer Rails 3.1 App getestet.

+0

) Es sieht aus wie Carrierwave die Datei entfernt, aber leere Verzeichnisse nicht entfernt. Ich hätte mit Büroklammer stecken sollen. – jspooner

0

Ich bin nicht vertraut mit Carrierwave, aber im Allgemeinen ist das Einhängen in die after_destroy wahrscheinlich, was Sie wollen.

class Model < ActiveRecord::Base 
    after_destroy :delete_linked_file 

  def delete_linked_file 
    # Delete the linked file here 
    end 
end
+1

Sieht aus wie Carrierwave sollte es selbst behandeln. https://groups.google.com/forum/?fromgroups#!topic/carrierwave/KUyXuQdYcFw. Aber ich habe das gleiche Problem auch = (( –

1

Sie benötigen

@image.destroy 

nicht

@image.delete 

Auch Refresh-Button s3 auf aws Panel verwenden, um rufen

0

Ja, Sie es tun können, wie diese

def delete_image_folder 
    FileUtils.remove_dir(File.join(Rails.root, File.join('public' , file_name.store_dir)), :force => true) 
end 

bu Denken Sie daran, dass wenn Sie das Carrierwave-Konfigurations-Root geändert haben, sollten Sie es berücksichtigen (Standard ist öffentlich, so dass dieser Code funktioniert)