Plots2: Upload gambar gagal

Dibuat pada 4 Apr 2021  ·  35Komentar  ·  Sumber: publiclab/plots2

Unggahan gambar gagal dengan kesalahan ini di bagian isi "Bagian 4" dari rute /post
Screenshot from 2021-04-04 03-28-07 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

bug help wanted high-priority

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 konfigurasi nginx terkait dengan SSL dan sekarang bekerja di situs langsung. Terimakasih semuanya!

image

Semua 35 komentar

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.

Screenshot 2021-04-04 at 8 13 15 PM

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 -

https://user-images.githubusercontent.com/58583793/113514702-c308e700-958d-11eb-8e12-59c7a9648b24.mp4

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).

Screenshot_20210404-174638
Screenshot_20210404-174706

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

Screenshot from 2021-04-05 00-54-02

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 ...

https://github.com/publiclab/plots2/blob/bd7b2e26c1edbd85a9754d8b25bc27950fd99770/app/views/editor/rich.html.erb#L344 -L347

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:

https://github.com/publiclab/PublicLab.Editor/blob/59e5bf6fd1ac2b6f9108e522baa7cdab36e0bb64/src/modules/PublicLab.MainImageModule.js#L94

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

Saya percaya PR ini dari 28 hari yang lalu mungkin terkait. perubahan terakhir pada cabang woofmark kami gunakan terjadi pada September 2020.

https://github.com/jywarren/woofmark/pull/76/files

Saya tidak melihat apa pun dalam kode di woofmark -- 2 rute sekarang:

  1. menelusuri param upload.xhrOptions melalui Woofmark dan mengonfirmasi bahwa ia mendapatkannya dengan benar
  2. melihat apakah modul xhr npm telah berubah

https://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:

image

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!

image

@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.

Screenshot 2021-04-20 at 2 54 03 AM

Kode baru ditayangkan tadi malam! Melihat, saya melihat kesalahan baru - kesalahan 500:

dimulai dengan yang ini, yang sama dengan 302 yang ditemukan Cess:

image

Kemudian diarahkan ke kesalahan 500 baru ini:

image

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:

  • "/aplikasi/aplikasi/tampilan"
  • "/usr/local/bundle/gems/grape-swagger-ui-2.2.8/app/views"
  • "/usr/local/bundle/gems/grape-swagger-rails-0.3.1/app/views"
  • ```

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!

image

: lalu:: lalu:: lalu:

luar biasa!!! Terima kasih

Apakah halaman ini membantu?
0 / 5 - 0 peringkat