Unggahan gambar gagal dengan kesalahan ini di bagian isi "Bagian 4" dari rute /post
ini ada di https://publiclab.org/ , dapat mereplikasinya di https://unstable.publiclab.org dan secara lokal
Catatan: Unggahan gambar berfungsi dengan baik di "Bagian 2" dari /post
Templat: https://github.com/publiclab/plots2/blob/main/app/views/editor/rich.html.erb
Juga merujuk #9442 untuk masalah kecil.
terima kasih @waridrox :+1:
Mencoba men-debug masalah lebih lanjut, kesalahan yang saya dapatkan saat mengunggah gambar dari penyimpanan file lokal adalah
Paperclip::Errors::CommandNotFoundError: Could not run the 'identify' command. Please install ImageMagick.
di bawah lingkungan pengembang lokal. Saya percaya ini adalah ketergantungan baru untuk permata paperclip
yang berhubungan dengan unggahan file.
Setelah menginstal imagemagick
dengan perintah sudo apt-get install imagemagick
atau brew install imagemagick
, saya menambahkan 2 baris kode ini dalam file development.rb
.
Paperclip.options[:image_magick_path] = "/opt/ImageMagick/bin"
Paperclip.options[:command_path] = "/opt/ImageMagick/bin"
Setelah itu saya hanya me-restart server dan unggahan file berfungsi kembali dengan jenis file seperti jpeg
, png
dan gif
. Berikut sekilas hal yang sama -
Dari _thread ini_ di stackoverflow, kita perlu menambahkan 2 baris ini di production.rb juga untuk mencerminkan perubahan di aplikasi produksi.
Juga karena parameter opsional untuk menginstal image-magick di https://github.com/publiclab/plots2/blob/main/doc/PREREQUISITES.md#image -libraries-optional, perilaku ini diamati sejak awal.
Terima kasih @waridrox , saya menarik perubahan Anda dan saya masih mendapatkan kesalahan .... dapatkah orang lain mencoba pada akhirnya. Terima kasih
Oh sangat menyesal tentang itu, tolong kembalikan tarikannya. Apakah itu bekerja secara lokal? Mungkin mencoba sudo apt-get update
terlebih dahulu dan kemudian sudo apt-get install imagemagick
dapat membantu...
Hai semua, secara lokal masuk akal bahwa itu adalah imagemagick tetapi (atau tidak adanya imagemagick) tetapi pada stabil itu harus diinstal. Saya ingin tahu apakah itu bug yang berbeda di stable? Kita harus cross check di Sentry.io. Apakah Anda memiliki akses?
Terima kasih telah menemukan dan mendokumentasikan ini!!
Saya tidak melihat kesalahan penjaga pada unggahan gambar kecuali dalam kaitannya dengan foto profil (yang sering terjadi karena spam dan serangan).
Apa jalan untuk kesalahan itu? Ini kesalahan 500?
Maaf maksud saya /baru-baru ini/kesalahan
@waridrox itu tidak berfungsi untuk saya secara lokal mungkin saya memiliki versi yang salah .. @jywarren itu lebih merupakan kesalahan 302 di pihak saya
Aha, kesalahan 302 memang... ️
Saya akan melihat mengapa itu bisa terjadi. Terima kasih!
Saya akan mencoba menjalankannya di GitPod untuk melihat apakah saya dapat mereproduksi 302...
Oke, dapatkan log dari 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)
OK, jadi mengapa kita diarahkan untuk login... mencari...
Sepertinya token CSRF tidak berfungsi ... mari kita lihat ...
kami melewatinya di sini.
$('meta[name="csrf-token"]').attr('content')
mengambil token dengan benar, jadi bukan itu...
Memperhatikan bahwa di GitPod, pengunggah gambar utama berfungsi. Ini menggunakan pengontrol yang sama, jadi masalahnya sepertinya ada di kode modul teks kaya Editor itu sendiri:
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">}}
Dan sebenarnya pengunggah gambar utama juga menggunakan token dalam permintaannya:
Ini mengambilnya dengan benar dengan:
editor.options.mainImageModule.token
"5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg=="
Dikonfirmasi. Unggahan gambar utama memiliki set params ini dalam permintaan formulir:
authenticity_token: 5Z5plBlzFXbu2qCKPTDZYa54DWaNn556hs9FzyvH2U8NDMabePLVh1RlBuhkRR+Ej+kgI/hLIAm9LcdrEZv4lg==
uid: 1
image[photo]: (binary)
Sedangkan unggahan gambar sebaris hanya memiliki ini:
nid: null
image[photo]: (binary)
memeriksa perubahan terbaru pada bagian kode itu, serta opsi modul itu sendiri untuk memastikannya disimpan/diteruskan dengan benar dari konstruktor.
Wow, kutu yang dalam. Mengejar kembali melalui https://github.com/jywarren/woofmark/pull/2 ke perpustakaan woofmark
: https://github.com/bevacqua/woofmark/pull/44
Itu ada di cabang kami woofmark
:
https://github.com/jywarren/woofmark/blob/plots2/src/prompts/prompt.js#L133
Saya percaya PR ini dari 28 hari yang lalu mungkin terkait. perubahan terakhir pada cabang woofmark
kami gunakan terjadi pada September 2020.
Saya tidak melihat apa pun dalam kode di woofmark
-- 2 rute sekarang:
upload.xhrOptions
melalui Woofmark dan mengonfirmasi bahwa ia mendapatkannya dengan benarxhr
npm telah berubahhttps://www.npmjs.com/package/xhr diterbitkan 2.6 5 bulan yang lalu tetapi telah berada di 2.2.1 selama berbulan-bulan dalam proyek kami. dikonfirmasi di package-lock.json
OK, jadi upload.xhrOptions
param beforeSend
membuatnya menjadi woofmark
, seperti yang diuji di konsol JS.
Apakah itu benar-benar menghasilkan tajuk tambahan?
xhrOptions: {
beforeSend: function(xhr) { xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')) }
},
Astaga, saya tidak tahu kapan ini berhenti bekerja, tetapi saya pikir kami berpotensi menambahkan param formData
dan melakukannya dengan cara itu??? Tetapi tidak yakin apakah itu akan dilewatkan dengan yang lain, atau apakah xhr lib akan mengabaikannya?
Memperhatikan ini akan terjadi pada 5 November 2020 di https://github.com/publiclab/PublicLab.Editor/releases/tag/v3.0 atau 28 hari yang lalu di https://github.com/publiclab/plots2/pull/ 9323
Menurut baris ini, saya percaya formData
harus diteruskan secara normal:
https://github.com/bevacqua/woofmark/pull/44/files#diff -b70752c6e4fb751c6aa381f57afac66c25cc2d401b141b03e1751d81e60efcd2R216
akan mencoba di GitPod:
formData: {nid: null, authenticity_token: _module.options.token},
... YANG MELAKUKANNYA:
Akan diperbaiki di https://github.com/publiclab/PublicLab.Editor/pull/712 , rilis 3.0.3, dan juga menambahkan token formData
di https://github.com/publiclab/plots2 /tarik/9504.
Wah!
Selesai dan dikonfirmasi di stable!
@publiclab-mimi melaporkan hari ini bahwa
Pada editor catatan penelitian saya tidak dapat mengunggah JPEG, PDF, atau PNG.
Di Google Chrome dan Safari baik opsi drag-and-drop maupun browsing
@ebarry , saya pikir versi saat ini masih belum memiliki perubahan di atas karena waktu buffer yang diperlukan untuk mendorong perubahan ke versi langsung. Itu karena unggahan gambar/file berfungsi pada versi stabil dan versi lawas.
Kode baru ditayangkan tadi malam! Melihat, saya melihat kesalahan baru - kesalahan 500:
dimulai dengan yang ini, yang sama dengan 302 yang ditemukan Cess:
Kemudian diarahkan ke kesalahan 500 baru ini:
yang sebenarnya setelah login berhasil, saya percaya, tapi aneh karena saya sudah login?
Sentry mencatatnya di sini, saya pikir, tetapi saya tidak yakin apakah kesalahan terjadi sebelum atau setelah upaya login.
https://sentry.io/share/issue/13e10e65210c4ceb9860ec687482d9b7/
```
Tampilan Tindakan::Templat Hilang
Home/home template tidak ada dengan {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, : ruby, :kopi, :jbuilder]}. Dicari di:
Hah, mengalami kesulitan melacak ini jadi saya akan mencoba mereproduksi di GitPod lagi???
Oke, @icarito dan saya dapat menyelesaikan masalah pembaruan benang untuk menarik kode editor 3.0.3
, mengonfirmasinya, lalu memperbaiki satu lagi masalah konfigurasi nginx
terkait dengan SSL dan sekarang bekerja di situs langsung. Terimakasih semuanya!
: lalu:: lalu:: lalu:
luar biasa!!! Terima kasih
Komentar yang paling membantu
Oke, @icarito dan saya dapat menyelesaikan masalah pembaruan benang untuk menarik kode editor
3.0.3
, mengonfirmasinya, lalu memperbaiki satu lagi masalah konfigurasinginx
terkait dengan SSL dan sekarang bekerja di situs langsung. Terimakasih semuanya!