我的问题是:当我使用活动存储时,如何从URL上传图像。我在Stackoverflow中使用了来自其他帖子的代码,但传递了model方法,即我需要存储在表中的param。奇怪的是,我收到了下一个错误:
ActiveSupport::MessageVerifier::PostsController中的无效签名#更新
但是当我从这个模型重新加载show视图时,图像显示为存储并部署在我的posts视图中。
在这里我的代码后模型:
class Post < ApplicationRecord require 'open-uri' has_one_attached :image_one has_one_attached :image_two has_one_attached :url_image before_save :grab_image def grab_image(url) downloaded_image = open(url) self.url_image.attach(io: downloaded_image, filename: "map.jpg", content_type:"image/jpg") end end
这是我在控制器的编辑操作中的代码:
def update @posturl = params[:post][:url_image] @post.grab_image(@posturl) respond_to do |format| if @post.update!(post_params) format.html { redirect_to @post, notice: 'Post was successfully updated.' } format.json { render :show, status: :ok, location: @post } else format.html { render :edit } format.json { render json: @post.errors, status: :unprocessable_entity } end end end
我得到了以下链接,其中谈到了从URL上传图像的机会,但我不知道我还能做什么:
活动存储概述-边缘指南
@omnilord/rails-5-2-activestorage-Employment-adoption-陷阱
以下是一个例子:
file_url = image[:image_url]
download = open(file_url)
IO.copy_stream(download,
user.image.attach(
io: download,
filename: image[:name],
content_type: image[:content_type],
))
不需要显式输入文件名的最简单方法是:
require 'open-uri'
url = URI.parse("https://your-url.com/abc.mp3")
filename = File.basename(url.path)
file = URI.open
user = User.first
user.avatar.attach(io: file, filename: filename)
这会针对特定用户对象自动保存化身。
如果您使用的是远程服务(如S3),则可以通过以下方式检索URL:
user.avatar.service_url
也许这对你有用:
file = open(url)
user.image.attach(io: file, filename: "temp.#{file.content_type_parse.first.split("/").last}", content_type: file.content_type_parse.first)
这是我的代码-
我正在尝试在谷歌云上迁移我的rails应用程序。我已将活动存储与地面军事系统上创建的存储桶连接起来。我上传了bucket中的文件夹“storage”,但应用程序中的所有图像都有404错误。 如何正确迁移GCS中的本地存储文件夹? 谢谢你的建议
我正在开发一款用于拍照的Android应用程序。首先,用户拍摄个人资料图片。此图像的Url保存在Firebase实时数据库中。用于检索以下下载URL的示例代码 这个url被保存在数据库中的多个地方,我需要在那里加载用户的个人资料图片——他的每个帖子的条目,他给应用程序上其他人的消息,等等。 现在,如果他以后更改个人资料图片,我有以下两个选项 更新每个数据库条目-非常繁琐、暴力和资源密集 那么,有没
我想从FireBase的方法获取下载Url。如何使用以下代码获取下载Url? 我使用了,但这不起作用。
我正在学习firebase,有一些关于Firebase存储的问题: < li >我可以使用的总文件大小的限制? < li >我想使用firebase datastorage使用avatar上传图像,然后使用该url将图像加载到带有glide或picasso的imageview。可能吗? < li >我想将我的应用程序与firebase authenticate配合使用,以使用登录、firebase