質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

解決済

Active Strageを用いてs3に画像が保存できない

taniyan512
taniyan512

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

1回答

0リアクション

0クリップ

178閲覧

投稿2022/09/18 07:57

前提

Active Strageを用いて画像をs3に保存したいのですが、エラーが発生し、先に進めません。

実現したいこと

Active Strageを用いて画像をs3に保存

発生している問題・エラーメッセージ

Aws::Errors::InvalidRegionError in HomeController#update Invalid `:region` option was provided. * Not every service is available in every region. * Never suffix region names with availability zones. Use "us-east-1", not "us-east-1a" Known AWS regions include (not specific to this service): af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-southeast-1 ap-southeast-2 ap-southeast-3 ca-central-1 eu-central-1 eu-north-1 eu-south-1 eu-west-1 eu-west-2 eu-west-3 me-central-1 me-south-1 sa-east-1 us-east-1 us-east-2 us-west-1 us-west-2 cn-north-1 cn-northwest-1 us-gov-east-1 us-gov-west-1 us-iso-east-1 us-iso-west-1 us-isob-east-1 Extracted source (around line #11): 9 10 11 12 13 14 def update @user = current_user if @user.update(params.permit(:profile_image, :user_name, :self_introduce, :twitter_url, :youtube_url, :instagram_url, :self_introduce_movie_url)) flash[:notice] = "Profile was successfully updated." redirect_to "/" else

該当のソースコード

development.rb

# ファイルをAmazon S3に保存する config.active_storage.service = :amazon

strage.yml

test: service: Disk root: <%= Rails.root.join("tmp/storage") %> local: service: Disk root: <%= Rails.root.join("storage") %> # Use bin/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: <%= Rails.application.credentials.dig(:aws, :s3, :region) %> bucket: <%= Rails.application.credentials.dig(:aws, :s3, :bucket) %>

user.rb

class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_one_attached :profile_image end

profile.html.erb

<% if flash[:notcie] %> <p class="notice"><%= flash[:notice] %></p> <% end %> <div class="profile"> <div class="profile-form"> <div class="profile-container"> <%= form_with url: update_home_path, method: :post do |f| %> <table> <tr> <th><%= f.label :profile_image ,"アイコン画像" %></th> <td><%= f.file_field :profile_image, value: @user.profile_image %></td> </tr> <tr> <th><%= f.label :user_name ,"名前", class: "username" %></th> <td><%= f.text_field :user_name, value: @user.user_name %></td> </tr> <tr> <th><%= f.label :self_introduce ,"自己紹介", class: "self_introduce" %></th> <td><%= f.text_area :self_introduce, value: @user.self_introduce %></td> </tr> </table> <ul class="profile-btn-content"> <li><%= f.submit "更新", class: "profile-btn"%></li> </ul> <% end %> </div> </div> </div>

home_controller.rb

lass HomeController < ApplicationController def top end def profile @user = current_user end def update @user = current_user if @user.update(params.permit(:profile_image, :user_name, :self_introduce, :twitter_url, :youtube_url, :instagram_url, :self_introduce_movie_url)) flash[:notice] = "Profile was successfully updated." redirect_to "/" else render 'profile' end end end

gemfile

gem "aws-sdk-s3"

試したこと

EDITOR="vi" bin/rails credentials:editコマンドで値が間違っていないか何度も確認しましたが、間違っていませんでした。
新しくバケットを作成し、再度試してみましたが結果は変わりませんでした。

補足情報(FW/ツールのバージョンなど)

前は問題なく画像は保存できていたのですが、ある時間違って途中段階の開発をリモートブランチにpushする前に消してしまい、ほぼ最初から開発を行なっています。そして再度Activi Strageを用いで画像を保存しようとしたら今回は保存ができず上記のエラーが発生している状態です。
どなたか解決方法が分かりそうな方がおられましたら是非ご教授のほどよろしくお願いします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

yu_1985

2022/09/19 12:00

> EDITOR="vi" bin/rails credentials:editコマンドで値が間違っていないか何度も確認しましたが、間違っていませんでした。 それを自己申告で言われてもこちらからはわかりません。 エラーメッセージからregionの指定が誤っていそうなのが読み取れると思いましたが、その部分はどのように記述してありますか。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。