cloudinary / cloudinary/cloudinary_gem

Tags with special URI characters are not readable

Open
#299 1 comment 0 reactions 1 assignee Claimed by @aleksandar-cloudinary View on GitHub
bug
Dominant language
Ruby
Stars
420
Forks
285
PR merge metrics
No merged PRs in 30d

Description

Tags that contain non-uri-component-safe characters are not readable using the `resources_by_tag` method. Example:

```ruby
tag = 'with/some?bad=characters'
Cloudinary::Uploader.upload(url, tags: [tag]) # correctly encodes value

# will not see the upload
Cloudinary::Api.resources_by_tag(tag)
# because uri = "resources/#{resource_type}/tags/#{tag}"

# Work around, will see the upload
Cloudinary::Api.resources_by_tag(URI.encode_www_form_component(tag))
```

This looks to be caused by [assembling the URI without encoding](https://github.com/cloudinary/cloudinary_gem/blob/23e94073719732701915c68a12ff68afaaa32650/lib/cloudinary/api.rb#L51).

I'm opening an issue rather than a pull request because the code seems to have a lot of direct URI assembling, so the issue almost certainly exists elsewhere in the code. Most sites seem to have more constrained elements (`type`, `public_id`, etc.), but it does not hurt to encode them too.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.