Rails 6.0에서 활성 스토리지용 Scaleway S3 구성

ScalewayXavier Niel이 1999년에 설립한 프랑스 웹 호스팅 회사입니다. 물리적 및 온라인 전용 서버, 도메인 등록 서비스 및 데이터 센터를 제공합니다.

2020년에 Scaleway는 OVHCloud에 이어 프랑스에서 두 번째, 유럽에서 세 번째 플레이어였습니다.

우리가 사용하는 Amazon AWS S3 스토리지 서비스@Kinoba에 대한 대안을 원하는 경우 이 작고 쉬운 자습서를 따르십시오 😊


스케일웨이 부분



Scaleway 구성부터 시작하겠습니다 👨🏻‍🔧
  • 1️⃣ 첫 번째 단계: Scaleway Elements에서 계정 만들기:

  • 👉🏻 https://www.scaleway.com/fr/object-storage/
  • 2️⃣ 두 번째 단계: Scaleway 콘솔과 "Object Storage"탭으로 이동하여 S3 버킷을 생성합니다.

  • 필요한 경우 도움말 절차:
    👉🏻 https://www.scaleway.com/en/docs/object-storage-feature/#-Operation-Procedures
  • 3️⃣ 세 번째 단계: 액세스 키와 비밀 키 생성 🔐 (예를 들어 1Password 또는 Bitwarden과 같은 곳에 저장하는 것을 잊지 마세요):

  • 👉🏻 https://www.scaleway.com/en/docs/generate-api-keys/


    Ruby On Rails 부분



    가장 재미있는 부분: Scaleway를 Rails 앱에 통합하기 👩🏽‍💻
  • ActiveStorage를 설치하고 active_storage_tables 마이그레이션을 만든 후 Gemfile에 "aws-sdk-s3"gem을 추가할 수 있습니다.

  • # Gemfile
    gem 'aws-sdk-s3', require: false
    


  • 그런 다음 자격 증명을 .env 파일에 추가할 수 있습니다(파일을 .gitignore에 추가하는 것을 잊지 마십시오).

  • # .env
    SCALEWAY_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
    SCALEWAY_SECRET_ACCESS_KEY_ID=YOUR_SECRET_ACCESS_KEY_ID
    SCALEWAY_BUCKET_NAME=YOUR_BUCKET_NAME
    


  • 이 구성을 개인 키 및 버킷과 함께 storage.yml에 추가합니다.

  • # storage.yml
    test:
      service: Disk
      root: <%= Rails.root.join("tmp/storage") %>
    
    local:
      service: Disk
      root: <%= Rails.root.join("storage") %>
    
    scaleway:
      service: S3
      endpoint: https://s3.fr-par.scw.cloud # Scaleway API endpoint, depending on your region
      access_key_id: <%= ENV['SCALEWAY_ACCESS_KEY_ID'] %> # Do not forget to hide your secrets
      secret_access_key: <%= ENV['SCALEWAY_SECRET_ACCESS_KEY_ID'] %> # Do not forget to hide your secrets
      region: fr-par # Your bucket region, here it's Paris
      bucket: <%= ENV['SCALEWAY_BUCKET_NAME'] %> # Your bucket name
    


  • 프로덕션 환경에서 Scaleway 스토리지를 사용하도록 Rails에 지시하는 것을 잊지 마십시오.

  • # production.rb
    config.active_storage.service = :scaleway
    


  • 마지막으로 평소처럼 기록에 파일을 첨부할 수 있습니다 🙌🏻

  • # user.rb
    has_one_attached :avatar
    



    # users_controller.rb
    @user.avatar.attach(params[:avatar])
    



    그게 다야 🎉






    Medium에서 확인하세요.

    François Loupias - 풀스택 웹 개발자@Kinoba

    좋은 웹페이지 즐겨찾기