0
Amazon S3に画像をアップロードするためのREST APIを持つサンプルアプリケーションを誰かに教えてもらえますか?私はたくさんのGoogle検索を行ったが、そのほとんどは期待どおりに動いていない。ペーパークリップを使用してAmazon S3にアップロードするREST APIを使用したサンプルrails4アプリケーション
少しの助けがあれば幸いです。
Amazon S3に画像をアップロードするためのREST APIを持つサンプルアプリケーションを誰かに教えてもらえますか?私はたくさんのGoogle検索を行ったが、そのほとんどは期待どおりに動いていない。ペーパークリップを使用してAmazon S3にアップロードするREST APIを使用したサンプルrails4アプリケーション
少しの助けがあれば幸いです。
APIを使用して画像をアップロードする場合は、画像をフロントエンドのbase64形式に変換してサーバーに送信できます。サーバーでは、base64データを画像に変換し、S3
にpaperclip
で保存することができます。ここで
class User < ActiveRecord::Base
before_save :decode_picture_data, :if => :picture_data_provided?
has_attached_file :avatar,
:storage => :s3, :s3_protocol => 'https',
:bucket => # S3_Bucket,
:url => '/user/:id/:basename_:id.:extension',
:s3_credentials => {
:access_key_id => # Access key id,
:secret_access_key => # Secret access key
},
:path => '/user/:id/:basename_:id.:extension',
:default_url => ""
validates_attachment_content_type :avatar, :content_type => %w(image/jpeg image/jpg image/png)
private
def picture_data_provided?
!self.picture_data.blank?
end
def decode_picture_data
# If cover_image_data is set, decode it and hand it over to Paperclip
data = StringIO.new(Base64.decode64(self.picture_data))
data.class.class_eval { attr_accessor :original_filename, :content_type }
data.original_filename = SecureRandom.hex(16) + ".png"
data.content_type = "image/png"
self.avatar = data
self.picture_data = nil
end
end
、picture_data
はAPI params
を介してクライアントから受信したbase64でデータを持っているUser
テーブルの列です。
上記のコードで独自のS3 URL
とパスを指定することができます。
上記のコードでは、クライアント側からのpicture_data
が復号され、S3
にPaperclip
で保存されます。
ゴクール、返信いただきありがとうございます。私は紙アプリ、宝石などの設定を取得するように、私はサンプルアプリケーションを共有していただけますか? –
ちょうど私がやったことは何も特別なペーパークリップのgithubページの手順に従ってください。 https://github.com/thoughtbot/paperclip#installation –
それは働いた。ありがとう:) –