问题标签 [carrierwave-direct]
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.
amazon-s3 - 什么时候不使用carrierwave_direct 处理版本?
我刚刚从carrierwave_backgrounder 切换到carrierwave_direct。我已经设置了carrierwave_direct 并且可以正常工作。即主文件正在上传,可以在视图中显示。但是,我的上传器版本没有被创建。
以下是我的工作:
carrierwave_direct 究竟何时处理版本——或者,carrierwave 何时指示处理版本?我假设使用费用.remote_receipt_url 加载原始图像,然后调用保存!触发上传者处理版本。那是对的吗?
无论如何,我的原始图像是通过后台作业上传的——但是,没有创建/上传版本。
我是否需要“recreate_versions”,即使它们以前不存在?在指向源文件后,我是否需要以某种方式显式处理版本,还是应该自动处理?
ruby - 使用 rails、carrierwave-direct 和 jquery 文件上传将文件上传到客户端的 s3
尝试从客户端上传时,我不断收到 403。这是因为桶上没有条件吗?如果我只指定密钥 - 没有访问密钥、签名或策略 - 它将正常上传。
桶策略:
CORS(由于是本地开发而开放)
签名生成
客户:
ruby-on-rails - Carrierwave_Direct + Rails 的问题
video_uploader.rb
模型.rb
参数:
错误显示是:
如果我将 VideoUploader 中的代码替换为:
然后文件被成功上传到 S3。但在我的情况下,我需要绕过托管应用程序的服务器,在后台直接上传视频到 S3。
请帮忙!
ruby-on-rails - 载波能直接上传到本地存储吗?
有时我远离互联网,仍然需要处理上传页面。Carrierwave Direct 似乎强制存储 :fog; 无法在开发中覆盖。
是否可以告诉 Carrierwave Direct 使用本地存储 (:file) 并简单地回退到 Carrierwave 的开发配置设置?
在开发配置设置下的carrierwave初始化程序中设置存储:文件不起作用...carrierwave_direct错误,来自“<%= direct_upload_form_for @uploader do |f| %>”的“不是公认的提供者”。
我试图解决carrierwave direct,但是在强制:fog、期望重定向url和期望direct_upload_form_for表单方法之间……carrierwave_direct非常负责。
在开发中使用 storage :file 将是carrierwave_direct gem 的一个受欢迎的功能。有谁知道如何干净地做到这一点?
ruby-on-rails - Carrierwave Direct AWS4
我已按照说明直接设置carrierwave,但出现以下错误。
我可以单独使用 Carrierwave 进行上传。但是,当我使用 Carrierwave Direct 时,它简单地失败了。我的 S3 存储桶在伦敦,我不知道这是否会影响它。我一次又一次地经历了一切,但似乎无法解决这个问题?
ruby-on-rails - 回归测试 Heroku 请求超时
我的 Rails 应用程序当前有一个缩略图上传端点,由于 30 秒的请求限制,该端点经常在 Heroku 上超时。我使用Carrierwave并希望切换到CarrierWaveDirect,通过直接上传到 S3 来解决问题。
在此之前,我想编写一个回归测试并看到它因请求超时而失败。我怎样才能做到这一点?
我的大多数测试都是高级 Selenium/capybara 测试,所以我尝试编写一个存根控制器操作以始终引发超时错误的测试:
这失败了,因为request
在块的上下文中未定义。在我进一步讨论之前,为这种情况编写测试的最佳方法是什么?
ruby-on-rails - Carrierwave 直接 gem 安装错误
我有一个名为我的 rails 项目的上传器BulkImagesUploader
,它接收一个 zip 文件并使用carrierwave
. 这一直工作正常,但我发现自己必须使用carrierwave_direct
gem 将文件直接从浏览器上传到 S3。
我已按照 gems README 上的说明进行操作,但是我收到一条错误消息
下面是我的代码
宝石文件
初始化器
上传者
堆栈跟踪
此错误的原因可能是什么?
ruby-on-rails - 从 CarrierWave 雾中移植的 CarrierwaveDirect 版本文件名
所以我有 9000 多张原始图像,每张都有 5-7 个生成的大小,已经存储在 S3 上。将生产转移到 Heroku,我们遇到的问题之一是大型主图像超时。
开始尝试 Carrierwave Direct gem 直接进入 S3 存储,然后处理异步,但是一旦我将第三个包含行添加到基本上传器,就会遇到现有图像消失的问题:
CarrierwaveDirect 更改文件名格式(方法如下:https ://github.com/dwilkie/carrierwave_direct/blob/29caaa8d399968258299b57c84eac2e5e6fc4cf7/lib/carrierwave_direct/uploader.rb#L153 )
文件名以这种方式更改:
原始载波发生器:
https://images.patchvault.org/uploads/issue/imageback/629/full_003b_a1_back.png
CW 直接网址生成:
https://images.patchvault.org/uploads/issue/imageback/629/003b_a1_back_full.png
因此版本名称从上传文件名的开头移动到结尾。这实际上是有道理的,但我正在处理 2 年和 9k 图像:)
当我启用它include CarrierWaveDirect::Uploader
时,BaseUploader
它会更改在视图中生成 url 的方式,因此所有图像 404(因为它们不再存在)
- 这里的最佳做法是什么?我正在保存到 Fog,但由于它正在上传到 Heroku
/tmp
,我是否应该将处理移至异步? - 我可以通过覆盖该方法来恢复行为还是不行?
- 有没有办法轻松地将 S3 上的图像文件名重写为新格式,还是不行?
对我也没有考虑的其他解决方案持开放态度:)
路径生成于base_uploader.rb
:
Rails 5.2.1、Ruby 2.5.2、Heroku-18 标准 2x dyno (web) 1x dyno (worker)。images.patchvault.org
是 S3 存储桶上云端 CDN 发行版的 CNAME。
ruby-on-rails - Rails + CarrierwaveDirect:成功直接上传到S3后无法下载和处理图像
使用 Rails 6 和CarrierWaveDirect,我们能够成功地将文件发布到预签名的 S3 URL,但是当我们尝试将文件从 S3 下载到我们的服务器进行处理时遇到错误。
我们的模型和上传器如下所示:
S3 按预期响应我们的直接上传 (POST),如下所示:
在docskey
之后,我们通过将返回的属性保存到新模型来处理响应,如下所示:
这似乎工作正常,但是,当它尝试将文件从 S3 下载到我们的服务器进行处理时,由于400 Bad Request失败:
尽管有 400,但我可以确认这@file_attachment.file.url
是一个有效的工作 URL,并且当通过浏览器访问该 URL 时,可以正常下载该文件。但由于某种原因,它无法从我们的应用程序中下载。
谁能发现我们做错了什么?或者有没有人知道更好的调试方法(“400 Bad Request”信息不足)。提前致谢!
这是我们的存储桶 CORS:
我们的环境细节:
提前致谢!
ruby-on-rails - 使用 CarrierWaveDirect gem 在模型中找不到“关键”属性
我一直在尝试使用 AWS 和 CarrierWave direct 实现直接上传。我正在关注文档。我有一个模型:AppNotice。它有一个名为 的列image
。但是,似乎即使我的模型有 code mount_uploader :image, AppNoticesImageUploader
,它也没有 key 属性。这是我的上传者app_notices_image_uploader.rb
:
还有我的 carriewrwave 配置文件:
我的上传表单非常简单,它与我的“普通”应用通知表单位于同一页面:
该validateSize
函数仅验证图像是否小于 5MB。应用程序通知表在它下面,它们之间没有任何关系。
这是我new
对 app_notices_controller 的操作:
据说 CarrierWaveDIrect 自动添加了 key 属性,我无法访问它。所以 AppNotice 模型中应该有 and 属性key
,但没有。
我的模型:
我发现的唯一问题是载波直接上没有 update_attribute 方法,并且没有一个解决方案对我有用。