cloudinary / cloudinary_gem

Cloudinary GEM for Ruby on Rails integration
https://cloudinary.com
420 stars 285 forks source link

How to pass options to ActiveStorage upload? #471

Closed joelmoss closed 3 years ago

joelmoss commented 3 years ago

I want to pass options to an ActiveStorage based upload, but cannot see how. For example I want to perform some eager transformations.

Usually, I can do:

Cloudinary::Uploader.upload("sample.jpg",
  :eager => [
    {:width => 400, :height => 300, :crop => :pad}])

How can I do this on upload using AS?

igy commented 3 years ago

Hi Joel,

It's not currently possible to set upload options or an upload preset for specific assets uploaded via ActiveStorage.

If you have options that should be applied to all uploads, you can configure a default upload preset at the account level (to be used when no other preset is specified on the API call).

You can set options to use on all calls as part of the service configuration (including an upload preset), and there's a unit tests in the SDK that sets a folder as part of the service config, for example: https://cloudinary.com/documentation/rails_activestorage#active_storage_configuration

In each case, you can request the eager transformations via the upload preset that's used

May I ask you to please try that and let me know if it works for you? Regards, Stephen

joelmoss commented 3 years ago

I only want to apply the options to certain uploads.

However, I did workaround it by defining an additional service in storage.yml, which accepts options.

igy commented 3 years ago

Hi Joel,

Thanks for the update. I didn't think of using multiple services using similar configuration but different upload options and then switching between them. That sounds like a good solution for your case, and I'll see if we can add that to the documentation actually, as it may be helpful for other customers.

If there's anything else I can help with, please let me know - otherwise, I'll close this issue for now Thanks, Stephen