yamlファイルのコメントアウトをエディタのショートカットで解除してエラーが出るときに確認すること
おことわり
Railsで遭遇したエラーではありますが、Rails以外でも起こりうるのでタイトルからRailsを外しています。
問題が起こった状況
Railsの設定ファイルの一つに、storage.yml
という、ストレージ周りの設定をするyamlファイルがあるのですが、
その中に、デフォルトではコメントアウトされているAWSのS3に関する設定があります。
今回、S3を設定する必要があったので、それを意気揚々とIDEのショートカットでコメントアウトを解除したときに問題が発生しました。
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
# amazon:
# service: S3
# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
# region: us-east-1
# bucket: your_own_bucket
どうなったか
下記エラーが発生しました
RuntimeError: YAML syntax error occurred while parsing /project_dir/config/storage.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1
どこが間違っていたか
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
amazon:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
region: us-east-1
bucket: your_own_bucket
この見た目ではわかりにくいですが、amazon
というキーの行以降が半角スペース1つ分右にずれています。
そのため、yamlの解釈エラーが出てしまっていたということになります。
対処法
ずれている分の半角スペースを削除する
結論
エディタのコメントイン機能を使う際はインデントに注意してください。
Author And Source
この問題について(yamlファイルのコメントアウトをエディタのショートカットで解除してエラーが出るときに確認すること), 我々は、より多くの情報をここで見つけました https://qiita.com/Ishiki_/items/82539275d94b84ebcd5b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .