Paperclipを使って、次のようなURLから画像を取得したいと思います。ペーパークリップ:画像をプログラムで割り当て、その名前を設定する
require 'open-uri'
user.photo = open(url)
問題は、open-uri20110915-4852-1o7k5uwのようなファイル名で巻いてしまうことです。 user.photoのファイル名を変更する方法はありますか?
追加されたひねりとして、Paperclipは私のファイルをS3に保存しているので、最初の割り当てで必要なファイル名を設定できれば、画像は正しいS3キーにアップロードされます。このようなもの:
user.photo = open(url), :filename => URI.parse(url).path
そして私は 'open(url)'を写真に割り当てた後にこれを行いますか?私はすでに写真がS3にある既存のユーザーと一緒にこれを試しました。今度は 'u.photo_file_name'は新しい名前を返しますが、' u.photo(:original) 'はまだ古いS3のURLと' u.photo.path'を持っています。 S3のファイルは動かなかった。 –
イメージが存在する場合は、「photo.reprocess!」とコールする必要があります。 Paperclipにストレージのバックエンドを更新させる(S3)。それ以外の場合は、最初の保存に先立って上記の作業が行われ、最終的に保存が行われるときにS3に正しく保存する必要があります –
paperclipによってファイル名が変更されることがあるので注意してください。 。 – James