/post
ルートの本文セクション「セクション4」でこのエラーが発生すると、画像のアップロードが失敗します
これは上にあるhttps://publiclab.org/ 、上でそれを再現することができましたhttps://unstable.publiclab.orgとローカル
注:画像のアップロードは、 /post
「セクション2」で正常に機能しています。
テンプレート: https :
マイナーな問題については、#9442も参照してください。
ありがとう@waridrox :+1:
問題をさらにデバッグしようとすると、ローカルファイルストレージから画像をアップロードするときに発生したエラーはPaperclip::Errors::CommandNotFoundError: Could not run the 'identify' command. Please install ImageMagick.
ローカル開発環境下。 これは、ファイルのアップロードを処理するpaperclip
gemの新しい依存関係であると私は信じています。
コマンドsudo apt-get install imagemagick
またはbrew install imagemagick
を使用してimagemagick
をインストールした後、これらの2行のコードをdevelopment.rb
ファイルに追加しました。
Paperclip.options[:image_magick_path] = "/opt/ImageMagick/bin"
Paperclip.options[:command_path] = "/opt/ImageMagick/bin"
その後、サーバーを再起動するだけで、 jpeg
、 png
、 gif
などのファイルタイプでファイルのアップロードが再び機能しました。 これが同じことを垣間見ることができます-
stackoverflowの_thisthread_から、本番アプリでの変更を反映するために、これらの2行をproduction.rbにも追加する必要があります。
また、 https: //github.com/publiclab/plots2/blob/main/doc/PREREQUISITES.md#image -libraries-optionalにimage-magickをインストールするためのオプションのパラメーターが原因で、この動作が最初に観察されました。
@waridroxに感謝します。変更をプルしましたが、まだエラーが発生します。他の誰かが最後に試してみてください。 ありがとう
ああ😅それについて本当に申し訳ありません、plsはプルを元に戻します。 ローカルで動作しますか? たぶん、最初にsudo apt-get update
試し、次にsudo apt-get install imagemagick
を試すと役立つでしょう...
みなさん、こんにちは。ローカルではimagemagickであることは理にかなっていますが(またはimagemagickがない場合)、安定した状態でインストールする必要があります。 それは安定版の明確なバグなのだろうか? Sentry.ioをクロスチェックする必要があります。 アクセスできますか?
これを見つけて文書化してくれてありがとう!
プロフィール写真に関連する場合を除いて、画像のアップロードで歩哨エラーが表示されません(これはスパムや攻撃が原因であることがよくあります)。
エラーのパスは何ですか? 500エラーですか?
申し訳ありませんが、/最近の/エラーを意味します
@waridroxローカルでは機能しませんでした。バージョンが間違っている可能性があります。
ああ、302エラーは確かに...🕵️
なぜそうなるのかを見ていきます。 ありがとうございました!
GitPodで実行して、302を再現できるかどうかを確認します...
OK、GitPodからログを取得しました!
Started POST "/images" for 10.4.6.182 at 2021-04-13 18:36:40 +0000
Cannot render console from 10.4.0.249! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by ImagesController#create as JSON
Parameters: {"nid"=>"null", "image"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x00007f444ce23c30 @tempfile=#<Tempfile:/tmp/RackMultipart20210413-4879-sla487.jpg>, @original_filename="11aa-love-ryan2-720.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image[photo]\"; filename=\"11aa-love-ryan2-720.jpg\"\r\nContent-Type: image/jpeg\r\n">}}
Can't verify CSRF token authenticity.
Redirected to https://3000-aquamarine-bass-qsunlo8p.ws-us03.gitpod.io/login?return_to=/images
Filter chain halted as :require_user rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.0ms)
Started GET "/login?return_to=/images" for 10.4.6.182 at 2021-04-13 18:36:40 +0000
Cannot render console from 10.4.0.249! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by UserSessionsController#new as JSON
Parameters: {"return_to"=>"/images"}
User Load (0.5ms) SELECT `rusers`.* FROM `rusers` WHERE `rusers`.`id` = 1 LIMIT 1
(0.2ms) BEGIN
User Update (0.5ms) UPDATE `rusers` SET `last_request_at` = '2021-04-13 18:36:40', `updated_at` = '2021-04-13 18:36:40' WHERE `rusers`.`id` = 1
(28.6ms) COMMIT
Redirected to https://localhost/home?return_to=%2Flogin
Filter chain halted as :require_no_user rendered or redirected
Completed 302 Found in 35ms (ActiveRecord: 29.7ms)
さて、なぜ私たちはログインにリダイレクトされるのですか...探しています...
CSRFトークンが機能していないようです...見てみましょう...
ここに渡します。
$('meta[name="csrf-token"]').attr('content')
はトークンを正しくフェッチするので、そうではありません...
GitPodでは、メインの画像アップローダーが機能することに注意してください。 同じコントローラーを使用しているため、問題はエディターのリッチテキストモジュールコード自体にある可能性があります。
Started POST "/images" for 10.4.0.248 at 2021-04-13 18:47:45 +0000
Cannot render console from 10.4.6.181! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by ImagesController#create as JSON
Parameters: {"authenticity_token"=>"5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg==", "uid"=>"1", "image"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x000055644bef1898 @tempfile=#<Tempfile:/tmp/RackMultipart20210413-5664-bsht8f.jpg>, @original_filename="11aa-love-ryan2-720.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image[photo]\"; filename=\"11aa-love-ryan2-720.jpg\"\r\nContent-Type: image/jpeg\r\n">}}
実際、メインの画像アップローダーもリクエストでトークンを使用します。
それは正しくそれをフェッチします:
editor.options.mainImageModule.token
"5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg=="
確認済み。 メインの画像アップロードでは、フォームリクエストに次の一連のパラメータが含まれています。
authenticity_token: 5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg==
uid: 1
image[photo]: (binary)
インライン画像のアップロードには次のものしかありません。
nid: null
image[photo]: (binary)
コードのそのセクションに対する最近の変更と、モジュールオプション自体をチェックして、コンストラクターから適切に格納/渡されていることを確認します。
うわー、深いバグ。 https://github.com/jywarren/woofmark/pull/2からwoofmark
ライブラリに戻って追跡します: https :
28日前のこのPRが関係しているのではないかと思います。 私たちが使用しているwoofmark
のブランチへの最後の変更は、2020年9月に行われました。
woofmark
-2つのルートのコードに何も表示されていません:
upload.xhrOptions
パラメータをトレースし、正しく取得されていることを確認しますxhr
npmモジュールが変更されたかどうかを確認するhttps://www.npmjs.com/package/xhrは2.65か月前に公開されましたが、私たちのプロジェクトでは何ヶ月もの間2.2.1になっています。 package-lock.jsonで確認済み
OK、それで、JSコンソールでテストされたように、 upload.xhrOptions
パラメータbeforeSend
はそれをwoofmark
にします。
それは実際に余分なヘッダーを生成しますか?
xhrOptions: {
beforeSend: function(xhr) { xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')) }
},
これがいつ機能しなくなったのかはわかりませんが、別のformData
パラメータを追加して、そのようにすることができると思いますか? しかし、それが他の人に渡されるのか、それともxhr libがそれを無視するのかわからないのですか?
これは、2020年11月5日にhttps://github.com/publiclab/PublicLab.Editor/releases/tag/v3.0で、または28日前にhttps://github.com/publiclab/plots2/pull/で発生したことに注意して
この行によると、私はformData
が正常に渡されるはずだと信じています:
https://github.com/bevacqua/woofmark/pull/44/files#diff -b70752c6e4fb751c6aa381f57afac66c25cc2d401b141b03e1751d81e60efcd2R216
GitPodで試してみます:
formData: {nid: null, authenticity_token: _module.options.token},
...それをしました:
https://github.com/publiclab/PublicLab.Editor/pull/712 、リリース3.0.3で修正され、 formData
トークンが追加されます。 / pull / 9504。
ふぅ!
完了し、安定して確認されました!
@ publiclab-mimiは本日そのことを報告しました
リサーチノートエディタで、JPEG、PDF、またはPNGをアップロードできませんでした。
Google ChromeとSafariでは、ドラッグアンドドロップと参照オプションの両方があります
@ebarry 、変更をライブバージョンにプッシュするために必要なバッファ時間のため、現在のバージョンにはまだ上記の変更がないと思います。 これは、画像/ファイルのアップロードが安定バージョンとレガシーバージョンで機能するためです。
新しいコードは昨夜公開されました! 見てみると、新しいエラーが表示されています-500エラー:
これから始めて、Cessが見つけたのと同じ302です:
次に、この新しい500エラーにリダイレクトされます。
これは実際にはログインに成功したときだと思いますが、すでにログインしているので変ですか?
セントリーはここにログを記録したと思いますが、ログイン試行の前後にエラーが発生したかどうかはわかりません。
https://sentry.io/share/issue/13e10e65210c4ceb9860ec687482d9b7/
`` `
ActionView :: MissingTemplate
{:locale => [:en] 、: formats => [:json] 、: variants => [] 、: handlers => [:raw、:erb、:html、:builder 、:ルビー、:コーヒー、:jbuilder]}。 検索対象:
ええと、これを追跡するのに問題があるので、GitPodでもう一度再現してみますか?
OK、 @ icaritoと私は、実際の3.0.3
エディターコードを取り込むためのyarn更新の問題を解決し、それを確認してから、SSLに関連するもう1つのnginx
問題を修正しました。ライブサイトでの作業。 みんな、ありがとう!
:then :: then :: then:
驚くばかり!!! ありがとうございました
最も参考になるコメント
OK、 @ icaritoと私は、実際の
3.0.3
エディターコードを取り込むためのyarn更新の問題を解決し、それを確認してから、SSLに関連するもう1つのnginx
問題を修正しました。ライブサイトでの作業。 みんな、ありがとう!