ホーム DoRuby CarrierWave を使用した IDCF オブジェクトストレージ保存
CarrierWave を使用した IDCF オブジェクトストレージ保存
 

CarrierWave を使用した IDCF オブジェクトストレージ保存

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

Railsに画像等のファイルをアップロードする機能を実装するgem「CarrierWave」を使用して、ファイルをIDCFのオブジェクトストレージへ保存する方法。

アップローダの編集

「rails g uploader XXX」 にて生成されるアップローダ(app/uploaders/XXX_uploader.rb)を、以下の様に編集する。

class XXXUploader < CarrierWave::Uploader::Base
  storage :fog # オブジェクトストレージに保存する場合は :fog を指定
  ### 以下省略 ###
end

初期化設定

下記の様な設定ファイルを作成し、config/initializers/carrierwave.rb 等として保存。

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider:              'AWS', # IDCFでもAWSと記述
    path_style:            true,
    host:                  'ds.jp-east.idcfcloud.com',
    port:                  443,
    scheme:                'https',
    aws_access_key_id:     'XXX', # アクセスキーを記述
    aws_secret_access_key: ENV['SECRET_IDCF_SECRET_KEY'], # シークレットキー
    region:                'ap-northeast-1', # 東京
    aws_signature_version: 2
  }
  config.cache_storage = :fog # 一時ファイルもオブジェクトストレージに保存する場合(LB使用時は必須)
  config.fog_directory = 'XXX' # バケット名を記述

  config.asset_host = 'ds.jp-east.idcfcloud.com' # CDNを使用しない場合
  config.asset_host = 'https://XXX.cdn.jp.idcfcloud.com/' # CDNを使用する場合
end
記事を共有

最近人気な記事