Comments (6)
What changed is that this functionality got extracted into a separate parsed_json
plugin. The reason for this is that I intended to make a plugin for enabling multiple files uploads in the same column, and having this functionality in the base made things more complicated, so I thought it would be more easily managed.
I initially thought that this would only be required in the case where a JSON string is submitted in the form, and the web framework parses that JSON. However, I see that this use case is completely valid, and I also used this functionality in the existing app (which I didn't update with the 1.0 release). Even though in the meanwhile I've put the plugin for multiple files on hold (I find it too difficult to implement properly, and not important enough at the moment), I would still like to have this path open.
I'm not sure if it was the right decision to move this into a plugin, I will see if adding it back would still leave the path open for the potential multiple files plugin. Otherwise I will update the documentation to be explicit about accepting only JSON strings (and the example app as well).
from shrine.
@janko-m ok ignore this it seems because of me setting avatar_data column with some json/hash string and then trying to set @user.avatar
again was giving me that error. I'll close this.
from shrine.
Hello.
I'm having the same error.
Shrine::InvalidFile (<ActionController::Parameters {"id"=>"988c14e239761adbec83c00f91ce0e42.png", "storage"=>"cache", "metadata"=><ActionController::Parameters {"filename"=>"tiny.png", "size"=>148, "mime_type"=>"image/png", "width"=>3, "height"=>3} permitted: true>} permitted: true> is not a valid IO object (it doesn't respond to #read, #eof?, #rewind, #close)):
As far as I can tell (this is my first run-in with Shrine, trying to replace the half-baked ActiveStorage) I'm doing fairly normal stuff implementing a direct upload solution with S3. I'm expecting this json reference to the cached version (which is getting uploaded to S3 just fine) to trigger the full save / promote behavior, but instead I'm getting this error.
Is the issue here actually the ActionController::Parameters
bit getting in the way?
from shrine.
Fixed by calling .to_json
on the params hash in the controller.
from shrine.
@vcavallo Alternatively, I believe you just need to add the parsed_json
plugin to shrine, such as with Shrine.plugin :parsed_json
.
Or, sometimes instead of sending these things back as separate params, people send them to Rails as a serialized JSON string in the first place -- which is what most of the shrine examples show -- in which case it would just work.
Any of those approaches should be fine.
from shrine.
from shrine.
Related Issues (20)
- Download Endpoint returns http 500 for invalid urls
- 308 redirect HOT 1
- Plugin: "remove_invalid" doesn't clear _data column. HOT 5
- Shrine upload_endpoint on Sinatra 400 Bad Request HOT 2
- [Bug]: Error occurred when attempting to extract image dimensions: #<FastImage::UnknownImageType: FastImage::UnknownImageType> HOT 8
- [Bug]: Corruption of downloaded files when using `net-protocol v0.2.0` HOT 16
- [Bug]: Fix for bytesize on Array doesn't work when aws-core is installed from debian HOT 5
- [Bug]: remove_attachment error with ruby 3.2 HOT 2
- [Bug]: upload_options plugin moves file from store to cache HOT 2
- [Bug]: NoMethodError (undefined method 'bucket' for nil:NilClass) HOT 1
- [Bug]: no _dump_data is defined for class Proc (Shrine with Rails Cache) HOT 1
- [Bug]: `create_derivatives` uploads files already in the store HOT 2
- Website search broken after migrating to Docusaurus v2
- Support retries with remote_url HOT 1
- Unpermitted parameter: :images with dropzonejs HOT 4
- Specifying host: with plugin :url_options has no effect on the returned URL HOT 5
- Disabling cache is tricky HOT 2
- [Bug] File not promoted on permanent storage if reload the model inside a transaction HOT 4
- Using Shrine with Cloudflare R2 causes error Aws::S3::Errors::NotImplemented - x-amz-tagging HOT 5
- Documentation for `image_url` options HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shrine.