问题标签 [shrine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
803 浏览

ruby-on-rails - Shrine - 使用 Cloudfront 的派生端点和完整路径 URL

我正在使用带有 Rails 的 Shrine 将我的图像直接上传到 S3,然后使用 Cloudfront 提供它们。

我的设置运行良好,但我一直试图回答 2 个问题:

1) 用户通过 Uppy 上传新图片。他们单击“创建图像页面”,这将创建一个新的“页面”对象。用户被带到一个空白页面,而图像衍生品正在使用 Sidekiq 在后台进程中创建。一旦成功创建衍生产品并提升到 /store,我们如何通过 JS 将图像“弹出”?是否有我们可以接受的回调,或者是否可以继续尝试通过 JS 找到导数,直到它存在?

2) 使用 Derivatives Endpoint 插件,所有图像 URL 都是相对的。有没有办法将其作为来自 Cloudfront/自定义域的绝对 URL?下面是一个使用 Rails 的例子:

红宝石代码:

生成的 HTML:

我如何才能提供此结果 URL:

这是为了防止 DoS 吗?谢谢。

将主机选项添加到“derivation_endpoint”会导致以下错误以 XML 形式返回:

这可能是我的 Cloudfront 访问设置吗?也许是 CORS。

这是我在image_uploader.rb中的 derivation_endpoint 设置

路线.rb

config/initializers/Shrine.rb

0 投票
1 回答
115 浏览

ruby-on-rails - 我可以将 Shrine 上传凭据添加到模型中吗

我有一个基于 Rails 5 的多租户站点,每个租户都添加了自己的 s3 凭据,因此,在其租户站点上发生的任何上传都会上传到他们自己的 s3 帐户。

我目前遇到的问题是 Shrine 似乎只允许我在初始化程序中添加 s3 凭据。这很好用,但我想将它添加到模型中,以便我可以根据当时使用的租户动态填充 s3 凭据。有谁知道无论如何神社可以帮助我吗?

我设法用回形针做到了这一点,但它带来了其他问题,例如后台处理等。

0 投票
1 回答
94 浏览

ruby-on-rails - 如何使用 Shrine RemoteUrl 插件绕过 SSL 验证

我在 Rails 应用程序中使用 Shrine RemoteUrl 插件从远程站点获取一些文件(pdf)。这个站点有一个旧的 https 证书,我遇到了一些这样的错误:

我无法修改远程站点的 conf,所以我认为我需要绕过 SSL 验证。但是找不到办法。

我正在尝试在 Shrine 初始化程序文件中执行此操作,但我不知道如何将正确的选项传递给 Down::Http。Down::Http 后端使用 http.rb gem 实现下载(您可以使用它禁用证书验证

非常感谢任何帮助。谢谢!

0 投票
1 回答
627 浏览

ruby-on-rails - 获取“不允许的参数::照片”

我在使用 Shrine 的 Rails 6 上,我试图让用户上传多张照片。我想在属性页面上上传多张照片。我的问题是我得到“未经许可的参数:照片”

我正在关注此人的示例并使用本指南进行上传。我在这里做错了什么?

我在用着 - gem "uppy-s3_multipart", "~> 0.3"

错误正在返回

NoMethodError (undefined method `image_data' for # Did you mean? image_attacher):

property_controller.rb

照片.rb

属性.rb

属性/_form.html.erb

初始化/shrine.rb

图式

日志

0 投票
0 回答
50 浏览

ruby-on-rails - 我可以在 Ruby On Rails 应用程序中运行两个上传器吗

我有一个运行 Shrine 作为图像和文档上传器的 Ruby On Rails 应用程序(Ruby 2.3.8 Rails 4.2.7.1)。我想与使用 Carrierwave 作为上传器的图像处理公司 Cloudinary 进行集成。我是否需要重新编写整个代码来运行 Carrierwave 或者我可以在同一个堆栈中运行两个上传器(执行不同的任务)?

0 投票
1 回答
137 浏览

ruby-on-rails - 不允许的参数::photos_attributes

我想以嵌套形式使用神社宝石,但发生了

不允许的参数::photos_attributes

如何解决?我尝试了一些方法,即

等等,但我无法解决这个错误是怎么回事?请告诉我如何解决它

强参数

博客表单.rb

发送参数

博客.rb

照片.rb

上传者.rb

神社.rb

blogs_controller

我可以解决这个问题,相反,我无法合并 user_id 然后发生 ActiveRecord::RecordNotFound (找不到没有 ID 的用户):

也许我可以发送参数

所以错误是形成对象的属性

我上传了 blog_form.rb

不行,我到了(byebug)params[:user_id] *** NameError Exception: undefined local variable or method `params' for #

我改变了 user_id 而不是 params[:user_id] 所以

创造

Blog_form

blog_form_params

Somwhow 我可以发送一个 user_id,我很欣赏 Fernand,Amit Patel,我在视图字段中使用 hidden_​​field 而不是合并方法

0 投票
1 回答
671 浏览

ruby-on-rails - ActionView::Template::Error (undefined method `image_url' for #)

我在表单对象中使用神社 gem,我想剪辑图像,所以,我跟着https://github.com/shrinerb/shrine/wiki/Image-Cropping,但是,发生了上面的错误,我认为它似乎是不认识照片模型

意见

image_uploader

神社.rb

裁剪框.js

文件上传.js

促进工作.rb

销毁作业.rb

路由.rb

blog_form.rb

控制器

谢谢你,janko-m,arieljuod 我重写了视图,然后发生了新错误

环境轨道 6.0.2 红宝石 2.5.3

0 投票
0 回答
729 浏览

ruby-on-rails - 如何在 rails.6.0.2 中使用cropperjs

我用神社 gem 实现了cropper js,我参考https://github.com/shrinerb/shrine/wiki/Image-Cropping,这段代码https://github.com/shrinerb/shrine-crop-example/,但是不行,不出现错误,为什么cropper js不行?

应用程序.html.erb

应用程序.js

裁剪框.js

文件上传.js

form.html.erb

应用程序.scss

这里是调用 response.uploadURL

应用程序.js

文件上传.js

我认为 uppy 没有找到选择器,因此无法裁剪,因此我添加了类和 id 选择器,但裁剪仍然不起作用

form_views

0 投票
2 回答
563 浏览

ruby-on-rails - 神社新手。缓存有什么用?

我目前正在使用 Shrine 将文件上传到 DigitalOcean(通过 s3 sdk)。它工作得很好,很完美。但是,在指南中有一个存储选项来制作上传的临时副本,由“缓存”前缀指定。

这个缓存是如何使用的?或者,换句话说,它提供了哪些功能?

由于我完全不知道它的用途,目前我所看到的只是我在我的空间(存储桶)资源中上传的副本。这些文件是否被处理掉了?

最后,如果缓存文件是用于数据检索的目的,那么制作本地缓存而不是将其发送到 S3 资源是否有意义?

如果所有这些都是常识,我很抱歉,当我急于实施它时,我似乎并不清楚。

0 投票
1 回答
974 浏览

javascript - 未找到模块:错误:无法解析“cropbox”2

我问了问题 Module not found: Error: Can't resolve 'cropbox'
但我没有得到答案,所以我必须专注于更具体的问题并在 StackOverflow 中搜索,

所以我得到三个问题

1 rails 不加载cropbox.js

2 clopbox.js 无法导出cropbox 功能

3 fileUplod.js 无法导入cropbox 功能

这就是上述问题之一的结果

application.html.erb 的一部分:

结果,我故意不编译 fileUpload,rails 可以加载 clopbox.js 所以,我缩小了 2 个问题

有人愿意告诉我这些问题吗?

环境:

导轨 6.0.2 红宝石 2.5.3

应用程序/javascript/packs/fileUpload.js:

webpacker.yml:

应用程序/javascript/packs/cropbox.js:

form.html.erb

日志: