簡體   English   中英

在Rails網站上將圖像上傳到Google雲存儲

[英]Uploading an image to google cloud storage on a rails site

我試圖允許用戶將圖像上傳到我的網站。

我將圖像“上載”到我的控制器,並且有一個變量,其值為我的圖像。 例如:

@image_data = data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAqCAYAAAAj6gIfAAAABHNCSVQICAgIfAhkiAAABCJJREFUWIXVmT1MW1cUx3/G8AqGEuD5I6h1iGLJA0hQqYszNENbxbEtVCUFdcmQIVRIURRlyczaiSGKMuChAxOpqCKMwYqSJZGKFGVwI2dIy1ATF+V9GIPAkOe6zmCcYAvs955fBf0vR8+6952f7jv33HOPbaVSqcT/VC3HDdCMWo8b4DBNTU3pGmM7CWGjB/YwHdvKmwU+KP3wr1/DzZtw9y74/aYdWgFdkf6wiUQgHodwGBYXDTs6CC2qKuGlJeKhEKooGn5XRfqzzblz1daAalf7UiKBb3WVS4mE4XcdlP6wSaXKdnYWkkmIRhuGz1EhstHTU2XNSv/K2+1lm8vB06dw40bd4fViuzeXA+CLZBKnqupGqJV++Hv3IBiEvr7y897ekUMbbcrExYtogoCgaYTjcd0ItdIP7/fD8jIMDtYdpiebKE4nbz0eAFoLBd0ItbK0PDCSBispzi3LiCZDxzz8y5dw4UI5/2M8f//TWs4V7Xt7prOOcfj29rLd3Cxv3Nu3TTlejETI7u8fs1nHOHxl4549W35OJkkPDBj+9KoostXdDZRDx4yMw9du3EyGM+m0qU/fUixWWaMyX5hNT0OxSPb5c/qyWdZPnzb9KrMyD+/3MxUI4BgeZiSZJDkyYiGWPjVdEucdDn47f94KFsMynSqtKG2L+yVHxRqVKXiravI1r7fKGtWx3mFXAgF2OzpM75dj7R5U9kve4fjwmyOf56tnz3Dk8w3nn7jWR2BlhW8ePyawstJwrGF4K++gh8m7tlZl6+nErbytxtbTiYOXXS4ApH1bTycK/tPtbQZfvQI+XhXryVCqrI13q1oYLkVhdGEBlyzTsbvLTmcniWCw4bymVn40FsO3uspoLGb6HS5ZZmJmhjPp9Afw+5OTKDoWo6lDqndjA4C+bNbU/KFUiu8ePkQoFNAEgTWvl+VgkO2uLl3zm4Jv2788d29tcT0a5dfLl3WFj6iq/DA3h1uSAHjr8fDL2Biy02nIf1NhM3/lCrsdHZRsNj7PZIjobGN8Pz+PW5LQBIEHY2Pcn5w0DA5Nwv/p8/HTnTv8NTAAlA+WRk0k75s39K+v829LCz9fu0ZqaMi0f0tSZSwSQRME2goFRhcW6o79+skTbKUSssvF3/39Tfm1BF5xOnkwPg6AqCjYjmg8OxWFzzIZAHY6O5v2a9kh9YfPx2Z3N107O/w4M4PrkI7AaCyGoGlogkA8HG7ap3UnrM1GrrcXgP71dSai0aqWRkuphFNRAJgbH9eVxxu6NPqfVL2qUlRVQktLDKTTtBUKFNra+H14GLck8cm7d7glic1Tp5i+dQtsekqv+rL0JqWKIrNXr+KWZa5HowiaxpcvXlSNyfX0WAIO/9E1UHK5mJmY4NtHj1BFEY8kYS8WKdrtxEMhy/y8Bxj/dMbj4r2WAAAAAElFTkSuQmCC

問題 :現在如何將這張圖片放入Google存儲桶?

使用回形針嘗試:

我看過這樣的帖子:

如何使用Rails和Paperclip在Google Cloud Storage上存儲照片?

我已經在我的rails站點中模擬了他們的模型:

class Itemcollection < ActiveRecord::Base
  belongs_to :user
  has_many :items
  has_attached_file   :avatar,
                      styles: {:medium => "160x160>", thumb: "40x40>"},
                      storage: :fog,
                      fog_credentials: { provider: "Google", 
                                         google_storage_access_key_id: ENV["google_access_id"],
                                         google_storage_secret_access_key: ENV["google_secret_key"]
                                      },
                      fog_directory: ENV["bucket"],
                      path: '/images/:class/:style/:id.:extension/'

  #validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/
end

但是,我不知道如何告訴控制器將項目集合與圖像一起保存。

我的控制器如下所示:

def create
  @itemcollection = itemcollectin.create(:user_id => current_user.id, :name => params[:itemcollection_name], :description => params[:itemcollection_description])
  @image_data = params[:itemcollection_image_data]
  @itemcollection = {itemcollection: @itemcollection, image: @image_data}
  render :json => { :itemcollection => @itemcollection }
end

當前,不使用@image_data。

我的數據庫確實包含回形針頭像上傳的所有位置。

| avatar_file_name      | varchar(255) | YES  |     | NULL    |                |
| avatar_content_type   | varchar(255) | YES  |     | NULL    |                |
| avatar_file_size      | int(11)      | YES  |     | NULL    |                |
| avatar_updated_at     | datetime     | YES  |     | NULL    |                |
+-----------------------+--------------+------+-----+---------+----------------+

嗯,假設您已根據Paperclip自述文件正確設置了表單,則只需將image_data分配給:avatar

itemcollection.avatar = params[:itemcollection_image_data]
itemcollection.save

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM