Amazon S3 申請教學及實作

Amazon Simple Storage Service 簡稱 Amazon S3,提供了類似倉庫的概念可以讓用戶直接上傳資料到 Bucket

而它的計算方式是透過網站流量以及容量來計算,也就是說沒有所謂最低價錢的限制,完全是用多少算多少

如果擔心價錢的話S3 也提供了簡易的換算器, 進去後在左側選擇 “Amazon s3”, 輸入好相關資料後切換到 “Estimate of your Monthly Bill” 分頁即可看到試算金額。

Step1.

登入帳號後在後台選擇 S3

Step2.

接著新增一個Bucket,日後我們所以的圖片的會傳至這個Bucket,Bucket Name可以隨便取,只要符合命名規則就可以了,而Region 是主機存放的位置,你也可以離台灣較近的亞洲區主機

Step3.

再來我們要建立我們專屬的AccessKey,在右上方選單上選擇 “Security Credentials”

跳出來的視窗暫時不用理他, 選擇 “Continue to Security Credentials” 後繼續

Step4.

在中間的控制面板點選 Access Keys (Access Key ID and Secret Access Key), 並點選 “Create New Access Key”

接下來非常重要, 一定要把Key File 下載下來, 因為如果遺失的話就只能重建一次了

Step5.

打開Key File 後大概長這樣

1
2
AWSAccessKeyId=<value>
AWSSecretKey=<value>

這兩組值等等我們要加到Heroku 的Variables 內, 現在回到Ghos config.js 檔內的 storage片段:

1
2
3
4
5
6
7
8
9
10
storage: {
active: 'ghost-s3',
'ghost-s3': {
accessKeyId: process.env.S3_ACCESSKEY,
secretAccessKey: process.env.S3_SECRETKEY,
bucket: 'ghost-blog-bucket',
region: 'us-west-2',
assetHost: 'https://s3-us-west-2.amazonaws.com/ghost-blog-bucket/'
}
},

bucket填的是剛剛 Create a Bucket 時填的名稱

region 填的是bucket 的所在區域, 因為我是註冊在Oregon, 所以填’us-west-2’, 不清楚的人可以查此張表

assetHost: 填的是region + bucket的組合字串, 規則如下:

https://s3-{YOUR-REGION}.amazonaws.com/{YOUR-BUCKET}/

最後在加上Heroku 的設定即可:

1
2
$ heroku config S3_ACCESSKEY=<value>
$ heroku config S3_SECRETKEY=<value>