Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PDFの展開ができない #17

Closed
tkusukawa opened this issue Oct 10, 2022 · 11 comments
Closed

PDFの展開ができない #17

tkusukawa opened this issue Oct 10, 2022 · 11 comments

Comments

@tkusukawa
Copy link

tkusukawa commented Oct 10, 2022

こちらのRails版ではPDFの内容の展開ができていないようです。
Docker版では大丈夫だった(下記)のですが、できればこちらのRails版で利用したいと考えています。

<実行結果>

$ curl  --data uri=https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.pdf  http://localhost:3000/extraction.json
{"mime-type":"application/octet-stream","uri":"https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.pdf","size":6567,"texts":[]}

<実行環境>

[root@fe4b07cb353f chupa-text]# git log -n 1
commit c8e51feb671218f85727a03a3aeed8397ce3b5d1 (HEAD -> master, origin/master, origin/HEAD)
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jul 20 14:22:26 2022 +0900

    Bump terser from 4.8.0 to 4.8.1 (#16)

    Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
    - [Release notes](https://github.com/terser/terser/releases)
    - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/terser/terser/commits)

    ---
    updated-dependencies:
    - dependency-name: terser
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 11:49:58
[root@fe4b07cb353f chupa-text]# bin/rails s
=> Booting Puma
=> Rails 6.1.7 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 5.6.5 (ruby 3.1.2-p20) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 3178
* Listening on http://127.0.0.1:3000
Use Ctrl-C to stop
Started POST "/extraction.json" for 127.0.0.1 at 2022-10-10 11:51:32 +0900
Processing by ExtractionsController#create as JSON
  Parameters: {"uri"=>"https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.pdf"}
[extractor][extract][target] <https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.pdf>:<application/octet-stream>
[extractor][extract][decomposer] not found
Completed 200 OK in 587ms (Views: 0.3ms | Allocations: 8626)

<Docker版での実行結果>

chupa-text@b658223cd6b6:~$ curl  --data uri=https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.pdf  http://127.0.0.1:3000/extraction.json
{"mime-type":"application/octet-stream","uri":"https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.pdf","size":6567,"texts":[{"mime-type":"text/plain","uri":"https://github.com/clear-code/redmine_full_text_search/raw/master/test/files/one-page.txt","size":6,"created_time":"2014-01-05T06:35:43.000Z","source-mime-types":["application/octet-stream"],"creator":"Writer","producer":"LibreOffice 4.1","body":"Page1\n","screenshot":{"mime-type":"image/png","data":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/\nAP+gvaeTAAACbklEQVR4nO3aoa0CURRFUeYHJD0g6YMS6JQOqAGPIVjyNIj5\nRcDOELJWBUdsccWd5nlewaf9LT2A3yQsEsIiISwSwiIhLBLCIiEsEsIiISwS\nwiIhLBLCIrFeesDqdDo9n8/j8Xi9XscYY4zD4bD0KN61fFhjjPv9/ng8zufz\n7Xbb7/ev12uz2Sy9i7dM3/CPNc/zNE2Xy2W73e52u6Xn8AFfERa/x/FOQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\nhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgkhEVCWCSERUJYJIRFQlgk\n/gFl5TA2XANYHwAAAABJRU5ErkJggg==\n","encoding":"base64"}}]}
chupa-text@b658223cd6b6:~$ 
@tkusukawa
Copy link
Author

Docker版とRails版のファイル内容のDiffを取って切り分けていったところ、Gemfile.local の有無でPDFの振る舞いが変わることがわかりました。 Gemfile.local.example を Gemfile.local にコピーする必要があった理解なのですが、 必要なものであれば Gemfileの方に含めるか、利用者によって使い分けるべきであれば、その旨をREADME.mdに記述して頂けると助かります。

@tkusukawa
Copy link
Author

五月雨にすみません。gem 'listen' は deveropmentだけでなく production でも必要なようでした。

@kou
Copy link
Member

kou commented Oct 11, 2022

Gemfile.local.example を Gemfile.local にコピーする必要があった理解なのですが、 必要なものであれば Gemfileの方に含めるか、利用者によって使い分けるべきであれば、その旨をREADME.mdに記述して頂けると助かります。

利用者によって使い分けるべきです。

README.mdに記述するpull requestを作ってもらえませんか?

@kou
Copy link
Member

kou commented Oct 11, 2022

gem 'listen' は deveropmentだけでなく production でも必要なようでした。

うーん、必要ないと思うんですけどねぇ。。。Gemfile.lockを見せてもらえますか?

@tkusukawa
Copy link
Author

利用者によって使い分けるべきです。
README.mdに記述するpull requestを作ってもらえませんか?

申し訳ないのですが、私にはどう使い分けるものなのか解っていないです。

@tkusukawa
Copy link
Author

gem 'listen' は deveropmentだけでなく production でも必要なようでした。
うーん、必要ないと思うんですけどねぇ。。。Gemfile.lockを見せてもらえますか?

今から思えば、動作確認する中で bin/rails s を実行してエラーが出て、
gem 'listen' を含めたら解決したのですが、
productionでは bin/rails s は使わないのが常識ということですよね。
全然解っていないながら、同じようにハマる人が減ればと思ったのですが、
お手数をおかけして申し訳ありません。

@kou kou closed this as completed in e47dd83 Oct 15, 2022
@kou
Copy link
Member

kou commented Oct 15, 2022

利用者によって使い分けるべきです。
README.mdに記述するpull requestを作ってもらえませんか?

申し訳ないのですが、私にはどう使い分けるものなのか解っていないです。

わかりました。追記しました。e47dd835e8c3a3ecd6661a8ddb7a867b5060b042

私が「利用者によって使い分けるべき」というのを理解できていなかった気がしました。「PDFも使いたい人はGemfile.localを使うべき」ということだと思っていたのですが、もしかして、「PDFも使いたい人はGemfile.localGemfileを使うべき」という意味だったりしましたか?

@kou
Copy link
Member

kou commented Oct 15, 2022

gem 'listen' は deveropmentだけでなく production でも必要なようでした。

うーん、必要ないと思うんですけどねぇ。。。Gemfile.lockを見せてもらえますか?

今から思えば、動作確認する中で bin/rails s を実行してエラーが出て、 gem 'listen' を含めたら解決したのですが、 productionでは bin/rails s は使わないのが常識ということですよね。 全然解っていないながら、同じようにハマる人が減ればと思ったのですが、 お手数をおかけして申し訳ありません。

うーん、ちょっとエラーになる状況がわかっていなくてbin/rails sが悪いのかどうかも判断できないので次の情報を提供してもらえませんか?

  • 実際にproductionを使うときに実行した手順
  • そのときのエラーメッセージそのもの(バックトレースも含む)
  • Gemfile.lock

@tkusukawa
Copy link
Author

わかりました。追記しました。e47dd835e8c3a3ecd6661a8ddb7a867b5060b042

ありがとうございます!
自分で選択する必要があることが、よく解ります。

私が「利用者によって使い分けるべき」というのを理解できていなかった気がしました。「PDFも使いたい人はGemfile.localを使うべき」ということだと思っていたのですが、もしかして、「PDFも使いたい人はGemfile.localGemfileを使うべき」という意味だったりしましたか?

Gemfile.localを入れると問題が解決する事が結果として解りましたが、
それが環境によるものなのか(普通は入っているものが入っていない場合のみ必要とか)
対応フォーマットを増やすために必要なのか、他の理由で必要なのかが解っていませんでした。

@tkusukawa
Copy link
Author

うーん、ちょっとエラーになる状況がわかっていなくてbin/rails sが悪いのかどうかも判断できないので次の情報を提供してもらえませんか?

大変申し訳ありませんでした。
自宅で再現させてみて、大ぽかをやっていたことに気付きました。

$ RAILS_ENV=production bundle exec
とやった後で
$ bin/rails s
とやって(developmentで動いた結果、
`require': cannot load such file -- listen (LoadError)
のエラーをだしてました。

$ RAILS_ENV=production bin/rails s
で問題なく動きました。
大変失礼しました。

@kou
Copy link
Member

kou commented Oct 17, 2022

Gemfile.localを入れると問題が解決する事が結果として解りましたが、
それが環境によるものなのか(普通は入っているものが入っていない場合のみ必要とか)
対応フォーマットを増やすために必要なのか、他の理由で必要なのかが解っていませんでした。

なるほど。そういうことだったのですね。

$ RAILS_ENV=production bin/rails s
で問題なく動きました。

では、listenは追加しなくても大丈夫ですね。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants