nobu blog

プログラミングやゲームの話など。

*



ruby on railsでheroku上に構築したWEBサイトのサイトマップをGCSに保存する

   

概要

ruby on railsでheroku上に構築しているWEBサイトのサイトマップをGCS(Google Cloud Storage)に保存する方法のメモです。

背景

herokuはいわゆるコンテナ型のサービスになるため、サーバー環境内でファイルの永続化はできないため、AWSのS3やGCPのGCSなどのクラウドストレージサービスに保存する必要があります。

S3を使った例はよく見かけますが、GCSの例があまり無いのので記載してみます。

前提

GCSの設定などは省略します。

下記の情報をGCSから取得して下さい。

  1. プロジェクト名
  2. バケット名
  3. クレデンシャルファイル(json)

スポンサーリンク

方法

Gem

Gemfileに下記を記載します。

記載後、bundle installでインストールを行います。

 

sitemap_generatorの設定

インストール後、下記のコマンドを実行します。

config/sitemap.rbファイルが作成されるので下記のように記載する。

ENV('xxx')の部分は後で後で環境変数として登録を行う。

credentialsの部分はjsonを文字列としてものを渡しても動かないので、常時のように渡すことで動いた。

スポンサーリンク

URLのリダイレクト

自サイトURLからGCSのサイトマップへ転送を行うために、routes.rbにサイトマップのルーティングを追加する。

環境変数の追加

herokuの環境変数を追加する。

サイトマップの作成

下記のコマンドでherokuにデプロイを行う。

デプロイ完了後に、下記のコマンドを実行する。

自サイトのURL/sitemaps/sitemap.xml.gz

にブラウザでアクセスしてみてサイトマップがDLできれば成功。

 

 - heroku, Ruby on Rails, クラウドサービス , ,