ActiveStorage: Using upload_preset with folder creates invalid image links

Aperta
#423 3 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@const-cloudinary ci sta già lavorando.

Dal 31/8/2020.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

Describe the bug in a sentence or two.

I use different upload presets in my app which default to a different folder each (e.g. "production").
storage.yml:

cloudinary:
  service: Cloudinary
  upload_preset: <%= ENV['CLOUDINARY_UPLOAD_PRESET'] %>

What the SDK cannot know is that the upload preset is configured to upload files into a specified folder. Therefore, when it generates links to the uploaded images, they miss the folder part and result in dead links.

Issue Type

[ ] Build - Can’t install or import the SDK
[ ] Performance - Performance issues
[X] Behaviour - Functions aren’t working as expected (Such as generate URL)
[ ] Documentation - Inconsistency between the docs and behaviour
[ ] Other (Specify)

Steps to reproduce

  1. Configure an upload preset using an upload folder (e.g. "test") in the Cloudinary administration interface.
  2. Configure Rails' storage.yml to use upload_preset: test with the configured cloudinary service (see above).
  3. Upload a file attachment via Rails and ActiveStorage, then use url_for() to generate a link to that image.
  4. Observe: the link misses the "test"-folder part.

Operating System

[ ] Linux
[ ] Windows
[ ] OSX
[X] All

Environment and Libraries

Cloudinary Ruby SDK version - 1.13.2
Ruby Version - 2.6.6
Rails Version - 5.2.4.1
ActiveStorage - 5.2.4.1

Suggestion

We could use the Cloudinary API to fetch the configured upload folder for the specified upload preset. I'm not sure that's a good idea - we might end up calling the API every time someone uses an upload_prefix.
We may also introduce another storage.yml option "preset_folder" to be used together with upload_preset only.

I need this fixed quite urgently so I'm absolutely willing to submit a PR. Any hints from the maintainers would be totally helpful!

Lingua principale
Ruby
Stelle
420
Fork
282
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di cloudinary/cloudinary_gem

Tutte le issue di cloudinary/cloudinary_gem

Issue simili

Altre issue su Ruby

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.