尝试使用 Paperclip 和 Amazon 保存到 S3 API
Trying to save to S3 with Paperclip & Amazon API
大家好,我已经尝试查找我的特定问题的答案,但找不到解决方案。我尝试了一切。
我有一个带有回形针的礼品模型,可以保存图像。礼物实例由亚马逊模型填充(它从亚马逊 api 获取产品详细信息,包括图像、名称和价格),但我无法将图像保存到 S3。
我认为我的问题与回形针在我的礼物控制器的 "new" 路线上将其转换为亚马逊 S3 link 有关,而不是它实际创建礼物的时间。
这是一些代码:
class GiftsController < ApplicationController
skip_before_action :verify_authenticity_token
before_action :amazon_url, only: [:new, :new_extension]
before_action :authenticate_user!
def new
@friend = Friend.find_by_id(params[:id])
if @gift_data.failure == nil
@gift = Gift.new(
name: @gift_data.name,
image: @gift_data.image,
price: @gift_data.price
)
else
@gift = Gift.new()
if params[:search]
@failure = @gift_data.failure
respond_to do |format|
format.html
format.json { render :json => {gift: @gift} }
end
end
end
end
还有我的礼物模型:
class Gift < ActiveRecord::Base
belongs_to :category
has_many :ideas
has_many :friends, :through => :ideas
# this friends association doesn't work, need to troubleshoot more or figure that out
# also figure out whether we need it
has_many :goods
has_attached_file :image,
:storage => :s3,
:styles => { :medium => "370x370", :thumb => "100x100" }
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
validates_presence_of :name
# validates_presence_of :category_id
# validates :url, :url => {:allow_blank => false}
# validates :price, presence: true, format: {with: /\A\d+(?:\.\d{0,2})?\z/}, numericality: {greater_than: 0, less_than: 1000000}
end
我试过在 URI.parse 和 link 的礼品模型中添加一个方法,但它不起作用。甚至尝试在图像上的礼品控制器中执行此操作,但这也没有用。我假设回形针正在处理图像,即使它尚未创建并且之后甚至不会让我创建礼物。希望得到指导!
想通了。最后在 table 中添加了一个 image_url 行,然后使用 URI.parse(image_url) 将其保存到图像并将其保存到 S3。
大家好,我已经尝试查找我的特定问题的答案,但找不到解决方案。我尝试了一切。 我有一个带有回形针的礼品模型,可以保存图像。礼物实例由亚马逊模型填充(它从亚马逊 api 获取产品详细信息,包括图像、名称和价格),但我无法将图像保存到 S3。 我认为我的问题与回形针在我的礼物控制器的 "new" 路线上将其转换为亚马逊 S3 link 有关,而不是它实际创建礼物的时间。 这是一些代码:
class GiftsController < ApplicationController
skip_before_action :verify_authenticity_token
before_action :amazon_url, only: [:new, :new_extension]
before_action :authenticate_user!
def new
@friend = Friend.find_by_id(params[:id])
if @gift_data.failure == nil
@gift = Gift.new(
name: @gift_data.name,
image: @gift_data.image,
price: @gift_data.price
)
else
@gift = Gift.new()
if params[:search]
@failure = @gift_data.failure
respond_to do |format|
format.html
format.json { render :json => {gift: @gift} }
end
end
end
end
还有我的礼物模型:
class Gift < ActiveRecord::Base
belongs_to :category
has_many :ideas
has_many :friends, :through => :ideas
# this friends association doesn't work, need to troubleshoot more or figure that out
# also figure out whether we need it
has_many :goods
has_attached_file :image,
:storage => :s3,
:styles => { :medium => "370x370", :thumb => "100x100" }
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
validates_presence_of :name
# validates_presence_of :category_id
# validates :url, :url => {:allow_blank => false}
# validates :price, presence: true, format: {with: /\A\d+(?:\.\d{0,2})?\z/}, numericality: {greater_than: 0, less_than: 1000000}
end
我试过在 URI.parse 和 link 的礼品模型中添加一个方法,但它不起作用。甚至尝试在图像上的礼品控制器中执行此操作,但这也没有用。我假设回形针正在处理图像,即使它尚未创建并且之后甚至不会让我创建礼物。希望得到指导!
想通了。最后在 table 中添加了一个 image_url 行,然后使用 URI.parse(image_url) 将其保存到图像并将其保存到 S3。