【Rails】 Carrierwave와 fog-aws를 사용하여 이미지를 AWS S3에 업로드하는 방법
9822 단어 S3루비Railscarrierwave
목표
개발 환경
· Ruby : 2.5.7
·Rails: 5.2.4
·Vagrant: 2.2.7
· VirtualBox : 6.1
· OS : macOS Catalina
전제
AWS 계정을 등록했습니다.
하기 실장 완료.
· 게시 기능 구현
· Carrierwave를 이용한 이미지 게시 기능 구현
AWS 설정
1. 아래 링크에 액세스
AWS Management Console
2. 서비스를 클릭합니다.
3. IAM을 클릭합니다.
4. 사용자를 클릭합니다.
5. 사용자 추가를 클릭합니다.
6. 사용자 상세 설정
①유저명을 기입한다. (적당하고 좋음)
②액세스의 종류를 プログラムによるアクセス
로 설정한다.
③ 次のステップ:アクセス制限
를 클릭
7. 기존 정책에 직접 연결을 클릭합니다.
8. AmazonS3FullAccess를 선택하고 다음 단계: 태그를 클릭합니다.
9. 다음 단계: 확인을 클릭합니다.
10. 사용자 만들기를 클릭합니다.
11. 액세스 키 ID 및 비밀 액세스 키를 복사하여 삼가고 서비스를 클릭합니다.
12. S3 클릭
13. 버킷 만들기를 클릭합니다.
14. 이름과 지역 설정
① 버킷 이름을 입력합니다. (적당하고 좋음)
② 지역을 アジアパシフィック(東京)
로 설정한다.
③ 次へ
를 클릭한다.
14. 다음을 클릭합니다.
15. 다음을 클릭합니다.
16. 버킷 만들기를 클릭합니다.
구현
1. 키를 환경 변수화
① "gem 'dotenv-rails'"도입
Gemfilegem 'dotenv-rails'
터미널& bundle
② 어플리케이션 바로 아래에 '.env' 파일을 작성
※어플리케이션의 디렉토리로 이동하고 나서 이하의 커멘드를 실행
터미널$ touch .env
③ .env
파일 편집
.envS3_ACCESS_KEY_ID = 'アクセスキー' # 追記
S3_SECRET_ACCESS_KEY = 'シークレットアクセスキー' # 追記
④ .gitignore
파일 편집
.gitignore/.env # 追記
2.Gem 도입
Gemfilegem 'fog-aws'
터미널$ bundle
3. image_uploader.rb 편집
7행의 storage :file
를 코멘트 아웃 해, 아래의 코드를 추기한다.
image_uploader.rb# 追記
if Rails.env.development? # 開発環境の場合
storage :file
elsif Rails.env.test? # テスト環境の場合
storage :file
else # 本番環境の場合
storage :fog
end
storage :file
➡︎ 이미지를 응용 프로그램에 업로드합니다.
storage :fog
➡︎ 이미지를 S3에 업로드합니다.
4. carrierwave.rb 작성 및 편집
터미널$ touch config/initializers/carrierwave.rb
carrierwave.rbrequire 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
if Rails.env.production? # 本番環境の場合はS3へアップロード
config.storage :fog
config.fog_provider = 'fog/aws'
config.fog_directory = 'matsubishi-sample' # バケット名
config.fog_public = false
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['S3_ACCESS_KEY_ID'], # アクセスキー
aws_secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # シークレットアクセスキー
region: 'ap-northeast-1', # リージョン
path_style: true
}
else # 本番環境以外の場合はアプリケーション内にアップロード
config.storage :file
config.enable_processing = false if Rails.env.test?
end
end
Reference
이 문제에 관하여(【Rails】 Carrierwave와 fog-aws를 사용하여 이미지를 AWS S3에 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/96721426cff2b1d67cdd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· Ruby : 2.5.7
·Rails: 5.2.4
·Vagrant: 2.2.7
· VirtualBox : 6.1
· OS : macOS Catalina
전제
AWS 계정을 등록했습니다.
하기 실장 완료.
· 게시 기능 구현
· Carrierwave를 이용한 이미지 게시 기능 구현
AWS 설정
1. 아래 링크에 액세스
AWS Management Console
2. 서비스를 클릭합니다.
3. IAM을 클릭합니다.
4. 사용자를 클릭합니다.
5. 사용자 추가를 클릭합니다.
6. 사용자 상세 설정
①유저명을 기입한다. (적당하고 좋음)
②액세스의 종류를 プログラムによるアクセス
로 설정한다.
③ 次のステップ:アクセス制限
를 클릭
7. 기존 정책에 직접 연결을 클릭합니다.
8. AmazonS3FullAccess를 선택하고 다음 단계: 태그를 클릭합니다.
9. 다음 단계: 확인을 클릭합니다.
10. 사용자 만들기를 클릭합니다.
11. 액세스 키 ID 및 비밀 액세스 키를 복사하여 삼가고 서비스를 클릭합니다.
12. S3 클릭
13. 버킷 만들기를 클릭합니다.
14. 이름과 지역 설정
① 버킷 이름을 입력합니다. (적당하고 좋음)
② 지역을 アジアパシフィック(東京)
로 설정한다.
③ 次へ
를 클릭한다.
14. 다음을 클릭합니다.
15. 다음을 클릭합니다.
16. 버킷 만들기를 클릭합니다.
구현
1. 키를 환경 변수화
① "gem 'dotenv-rails'"도입
Gemfilegem 'dotenv-rails'
터미널& bundle
② 어플리케이션 바로 아래에 '.env' 파일을 작성
※어플리케이션의 디렉토리로 이동하고 나서 이하의 커멘드를 실행
터미널$ touch .env
③ .env
파일 편집
.envS3_ACCESS_KEY_ID = 'アクセスキー' # 追記
S3_SECRET_ACCESS_KEY = 'シークレットアクセスキー' # 追記
④ .gitignore
파일 편집
.gitignore/.env # 追記
2.Gem 도입
Gemfilegem 'fog-aws'
터미널$ bundle
3. image_uploader.rb 편집
7행의 storage :file
를 코멘트 아웃 해, 아래의 코드를 추기한다.
image_uploader.rb# 追記
if Rails.env.development? # 開発環境の場合
storage :file
elsif Rails.env.test? # テスト環境の場合
storage :file
else # 本番環境の場合
storage :fog
end
storage :file
➡︎ 이미지를 응용 프로그램에 업로드합니다.
storage :fog
➡︎ 이미지를 S3에 업로드합니다.
4. carrierwave.rb 작성 및 편집
터미널$ touch config/initializers/carrierwave.rb
carrierwave.rbrequire 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
if Rails.env.production? # 本番環境の場合はS3へアップロード
config.storage :fog
config.fog_provider = 'fog/aws'
config.fog_directory = 'matsubishi-sample' # バケット名
config.fog_public = false
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['S3_ACCESS_KEY_ID'], # アクセスキー
aws_secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # シークレットアクセスキー
region: 'ap-northeast-1', # リージョン
path_style: true
}
else # 本番環境以外の場合はアプリケーション内にアップロード
config.storage :file
config.enable_processing = false if Rails.env.test?
end
end
Reference
이 문제에 관하여(【Rails】 Carrierwave와 fog-aws를 사용하여 이미지를 AWS S3에 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/96721426cff2b1d67cdd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. 아래 링크에 액세스
AWS Management Console
2. 서비스를 클릭합니다.
3. IAM을 클릭합니다.
4. 사용자를 클릭합니다.
5. 사용자 추가를 클릭합니다.
6. 사용자 상세 설정
①유저명을 기입한다. (적당하고 좋음)
②액세스의 종류를
プログラムによるアクセス
로 설정한다.③
次のステップ:アクセス制限
를 클릭7. 기존 정책에 직접 연결을 클릭합니다.
8. AmazonS3FullAccess를 선택하고 다음 단계: 태그를 클릭합니다.
9. 다음 단계: 확인을 클릭합니다.
10. 사용자 만들기를 클릭합니다.
11. 액세스 키 ID 및 비밀 액세스 키를 복사하여 삼가고 서비스를 클릭합니다.
12. S3 클릭
13. 버킷 만들기를 클릭합니다.
14. 이름과 지역 설정
① 버킷 이름을 입력합니다. (적당하고 좋음)
② 지역을
アジアパシフィック(東京)
로 설정한다.③
次へ
를 클릭한다.14. 다음을 클릭합니다.
15. 다음을 클릭합니다.
16. 버킷 만들기를 클릭합니다.
구현
1. 키를 환경 변수화
① "gem 'dotenv-rails'"도입
Gemfilegem 'dotenv-rails'
터미널& bundle
② 어플리케이션 바로 아래에 '.env' 파일을 작성
※어플리케이션의 디렉토리로 이동하고 나서 이하의 커멘드를 실행
터미널$ touch .env
③ .env
파일 편집
.envS3_ACCESS_KEY_ID = 'アクセスキー' # 追記
S3_SECRET_ACCESS_KEY = 'シークレットアクセスキー' # 追記
④ .gitignore
파일 편집
.gitignore/.env # 追記
2.Gem 도입
Gemfilegem 'fog-aws'
터미널$ bundle
3. image_uploader.rb 편집
7행의 storage :file
를 코멘트 아웃 해, 아래의 코드를 추기한다.
image_uploader.rb# 追記
if Rails.env.development? # 開発環境の場合
storage :file
elsif Rails.env.test? # テスト環境の場合
storage :file
else # 本番環境の場合
storage :fog
end
storage :file
➡︎ 이미지를 응용 프로그램에 업로드합니다.
storage :fog
➡︎ 이미지를 S3에 업로드합니다.
4. carrierwave.rb 작성 및 편집
터미널$ touch config/initializers/carrierwave.rb
carrierwave.rbrequire 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
if Rails.env.production? # 本番環境の場合はS3へアップロード
config.storage :fog
config.fog_provider = 'fog/aws'
config.fog_directory = 'matsubishi-sample' # バケット名
config.fog_public = false
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['S3_ACCESS_KEY_ID'], # アクセスキー
aws_secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # シークレットアクセスキー
region: 'ap-northeast-1', # リージョン
path_style: true
}
else # 本番環境以外の場合はアプリケーション内にアップロード
config.storage :file
config.enable_processing = false if Rails.env.test?
end
end
Reference
이 문제에 관하여(【Rails】 Carrierwave와 fog-aws를 사용하여 이미지를 AWS S3에 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/96721426cff2b1d67cdd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'dotenv-rails'
& bundle
$ touch .env
S3_ACCESS_KEY_ID = 'アクセスキー' # 追記
S3_SECRET_ACCESS_KEY = 'シークレットアクセスキー' # 追記
/.env # 追記
gem 'fog-aws'
$ bundle
# 追記
if Rails.env.development? # 開発環境の場合
storage :file
elsif Rails.env.test? # テスト環境の場合
storage :file
else # 本番環境の場合
storage :fog
end
$ touch config/initializers/carrierwave.rb
require 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
if Rails.env.production? # 本番環境の場合はS3へアップロード
config.storage :fog
config.fog_provider = 'fog/aws'
config.fog_directory = 'matsubishi-sample' # バケット名
config.fog_public = false
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['S3_ACCESS_KEY_ID'], # アクセスキー
aws_secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # シークレットアクセスキー
region: 'ap-northeast-1', # リージョン
path_style: true
}
else # 本番環境以外の場合はアプリケーション内にアップロード
config.storage :file
config.enable_processing = false if Rails.env.test?
end
end
Reference
이 문제에 관하여(【Rails】 Carrierwave와 fog-aws를 사용하여 이미지를 AWS S3에 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsubishi5/items/96721426cff2b1d67cdd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)