---
# System prepended metadata

title: Rails 6  Active Storge 上傳圖片至 Amazon S3
tags: [專案]

---

###### tags: `專案`
# Rails 6  Active Storge 上傳圖片至 Amazon S3

**操作前提: 在local可以成功上傳圖片，(下圖的圖片預覽是我自己添加的表示可以在本地成功上傳)**

![](https://i.imgur.com/eAFqEUK.png)


## 開始主題操作:

在config中更改 production.rb 以及 development.rb 的儲存位置

`config.active_storage.service = :amazon`

production.rb 是為了正式上線使用，例如未來部署到Heroku的需求; 但為了測試目前在本地可以成功將資料上傳至Amazon S3 ，我也一併在 development.rb 改至 :amazon
![](https://i.imgur.com/QEaxlBB.png)

![](https://i.imgur.com/ozPFCQ9.png)

## 開始在 Amazon 設定 S3 (請先行創建自己的帳號)

### Step 1 創建 Bucket 儲存槽

![](https://i.imgur.com/kQ13ZZf.png)

![](https://i.imgur.com/U6AuSwo.png)

**命名完成即可，伺服器我選東京 ap-northeast-1，其他預設勾選不必變更**
![](https://i.imgur.com/RRO8jQR.png)

** 開始在 storge.yml 設置 S3 的需求**
![](https://i.imgur.com/QUFvnE9.png)

![](https://i.imgur.com/sC1wWHq.png)

### Step 2 創建 IAM 
![](https://i.imgur.com/yOiLPDR.png)

![](https://i.imgur.com/nnHmpUK.png)

![](https://i.imgur.com/aX6LJ9s.png)

![](https://i.imgur.com/58Yy5Kn.png)

![](https://i.imgur.com/8SNt0Qg.png)

![](https://i.imgur.com/CxwF7GQ.png)

![](https://i.imgur.com/UGIW0NX.png)

**這裡很重要!!請先 Download.csv 這兩組密碼保存**
![](https://i.imgur.com/fcjTUiw.png)

### step 3 寫入 access_key_id 和 secret_access_key
![](https://i.imgur.com/smuVfxK.png)

為了測試上傳的立即性，我並未使用環境變數來儲存我的 access_key_id 和 secret_access_key，這在**正式開發過程是大忌**，會有遭人竊取的問題(有用戶這兩組 id 被駭客拿去開 AWS 付費伺服器挖礦)，設定環境變數的方式可以參考 dotenv 套件的文章



### step 4 安裝 aws-sdk-s3

![](https://i.imgur.com/Fu5ceUo.png)


![](https://i.imgur.com/Ap3EEPA.png)


## 成功上傳後，去 Amazon S3 查看檔案

![](https://i.imgur.com/xPadZyv.png)

![](https://i.imgur.com/NkV9OGe.png)

![](https://i.imgur.com/zAevg6g.png)

![](https://i.imgur.com/DotD3QU.png)



