掲載されている画像と同じものであれば重複させたくないのですが、
お気に入り:
user1 が画像を
投稿 user2 が同じ画像を投稿2 # データベース内の画像
それを処理する方法はありますか??
ありがとう、
掲載されている画像と同じものであれば重複させたくないのですが、
お気に入り:
user1 が画像を
投稿 user2 が同じ画像を投稿2 # データベース内の画像
それを処理する方法はありますか??
ありがとう、
http://www.codeproject.com/Messages/2913691/Comparing-one-image-to-many-others-speeded-up.aspx
私は自分のプログラムでそれを使用していますが、すべて問題ありません!
DB 関連のアドバイス: ハッシュをテーブルに格納します。そして、ハッシュ計算が 1 つだけ必要です。
速度について
1)たとえば、画像サイズを100x100に制限します
2) ユーザーがログインしようとすると、パスワードのハッシュが計算されます。ユーザーはより頻繁にログインし、アバターを更新すると思います。
保存時に各画像のハッシュを計算します。新しいユーザーが同じ画像を投稿したら、その画像のハッシュをチェックし、データベース内の何かと一致するかどうかを確認します
これを達成するには、添付ファイルを独自のモデルに分解する必要があります。
だから、あなたが今持っている可能性が高い場所
class User < ActiveRecord::Base
has_attached_file :avatar #plus a bunch of specifications here
end
次のような新しいモデルと関連付けをセットアップします
class User < ActiveRecord::Base
belongs_to :images
end
class Image < ActiveRecord::Base
has_many :users
has_attached_file :avatar
end
次に、コントローラーで、次のことを行う必要があります
Image.find_or_create_by_avatar_file_name(#filename here)
これで、user.image_id 属性が作成され、アップロードされた単一の画像を複数のユーザーに関連付けることができます。
しかし、私はユーザーの写真 (バッジの写真、アバターの写真、楽しい写真など) をアップロードするかなり大規模なシステムを数多く構築してきましたが、ユーザー間の実際の重複は非常に小さい傾向があります。さらに、実際には、リソースの中で最も安価なもの、つまりストレージ スペースに対してのみお金を節約しています。この方法を使用しても、帯域幅のコスト、処理、またはプログラムの複雑さを節約することはできません。
これが本当に特殊な状況でない限り (その場合、あなたが何をしているのかを聞くのは素晴らしいことです)、私はこのルートに行かないようにアドバイスします.