レール、CarrierWave-霧-無欠のファイルを破壊したり、上書き
-
28-10-2019 - |
質問
何が正しい方向でレールw CarrierWaveを用い霧の削除/破棄の記録がある場合添付忘れ/からです。
って多様化するライフスタイルの数を記録した後、足の輸入の画像をRackSpace.が欠画像技術ですが...。また削除する記録を取得しますエラー
霧::保管::Rackspace::NotFound
はありまCarrierWaveまたは霧を行うための設定でに対する耐性のこれらの種類のシナリオ?
解決
ったこの問題を見つの課題申請はこちら https://github.com/jnicklas/carrierwave/issues/481 のページをwikiページを記述する修正はこちら https://github.com/jnicklas/carrierwave/wiki/How-To%3A-Silently-ignore-missing-files-on-destroy-or-overwrite
しかし、僕が嬉しいセキュリティーコンっすぐ落ちるのを見つけて、たいていのプロフィールをチェックした2つの方法すべてのモデルを使用しているアップローダ.私が書1ベースアップローダー、サブクラスが変更できます。い掘り、その中には、これらのメソッド:remove_#{column_name}!とremove_previously_stored_#{column_name}たテーマはこちら https://github.com/jnicklas/carrierwave/blob/master/lib/carrierwave/mount.rb#L204 や https://github.com/jnicklas/carrierwave/blob/master/lib/carrierwave/mount.rb#L204
両方のこれらの方法で除去す!のアップローダ.では最も簡単な修正されるかどうかの問題は、オーバーライドを削除す!方法のアップローダ.それだけをオーバーライドする方法が、1です。私overrrideは、以下に示すようになります:
class CloudfilesUploader < CarrierWave::Uploader::Base
# Override to silently ignore trying to remove missing previous file
def remove!
begin
super
rescue Fog::Storage::Rackspace::NotFound
end
end
end
うお客様の抱える問題を改善しようとした場合に再アップロード画像を上書きのイメージが存在しない場合において、削除した画像をお使いになれません。
~Tom