5
ファイルの内容を読み込んでインデックスを作成するアプリケーションがあります。私はそれらをディスクそのものに保管していましたが、今はAmazon S3を使用していますので、以下の方法はもう機能しません。CarrierWaveを使用してS3から実際のファイルを取得する方法
それはこのようなものだった:
def perform(docId)
@document = Document.find(docId)
if @document.file?
#You should't create a new version
@document.versionless do |doc|
@document.file_content = Cloudoc::Extractor.new.extract(@document.file.file)
@document.save
end
end
end
@document.file
はFileUploader
を返し、doc.file.file
はCarrierWave::Storage::Fog::File
クラスを返します。
実際のファイルはどのように入手できますか?
Jacob、 'open(@ document.file.url)'で解決されたcarrierwave googleグループtoo –
@ document.file.readは、使用されているファイルストレージに関係なく動作するため、おそらく良いでしょう。つまり、両方のローカルファイルシステムS3。 –
.readは私たちのためには機能しませんでした(私たちは曇り波を搬送波と組み合わせて使用しています) – Tibastral