كيف يمكنني التخلص من ملف الصورة الأصلي وأحتفظ بالتغييرات باستخدام Paperclip و Rails 3؟
-
26-09-2019 - |
سؤال
أنا أستخدم paperclip ، من بين أشياء أخرى ، السماح للمستخدم المسجل بتحميل الصورة الرمزية لاستخدامها في ملف التعريف. أرغب في تخزين نسخة كبيرة وصغيرة من الصورة والتي سيتم صيدها إلى أحجام قياسية. الآن ، ما أريد القيام به ، هو تخزين هذين الحجمين القياسيين (: عادي و: صغير ، على سبيل المثال.) لكنني لا أريد تخزين: الأصلي.
سيكون هذا لطيفًا لعدة أسباب لأنني لن أعرض أو أستخدم أي إصدار أكثر من أحجام اثنين (إعادة).
المحلول
ما هو منطقك عن الرغبة في حذف الملفات؟ تخزين الملفات رخيص جدًا الآن ، بحيث لم يعد سببًا صحيحًا حقًا.
أود أن أنصح بعدم حذف الملفات الأصلية. إذا قررت يومًا أنك تريد تغيير حجم الملفات باستخدام مهام Rake Paperclip ، فستحتاج إلى النسخ الأصلية.
نصائح أخرى
لا أستطيع التفكير في طريقة للقيام بذلك باستخدام Paperclip مباشرة ، ولكن يمكنك إزالة الأصل يدويًا بعد إنشاء السجل. مثال يمكن أن يبدو هكذا:
class Photo
has_attached_file :photo
after_create :destroy_original
protected
def destroy_original
# photo.url will look something like /system/photos/1/original.png
File.unlink("#{Rails.root}/public#{self.photo.url}")
end
end