使用Amazon S3实现图床

在用markdown书写时,上传图片稍稍有点不方便,如果图片在本地,上传之后又要改图片的地址。图片不多的时候还好,多起来的时候就很麻烦。。

前提:

  • Mac:Upic(Other OS:PicGo)
  • Amazon 账号
  • 一个域名 (可选操作)
  • CloudFlare账号 (可选操作)

创建并设置Amazon S3 Bucket

新建Bucket并公开

名字记得要唯一,记得把”封鎖所有公有存取權的儲存貯體設定”关掉就好了。

接着在你新建的bucket里,建立一个文件夹,并设置为公开。

在这里将images设置为公开后,images下的所有文件,都可以被公共访问。

静态托管 Bucket

将bucket设置为静态托管,启用静态托管配置功能就好了

新建IAM用户(获取Access Key ID和Secret access key

然后新建一个IAM账号

勾选图中的选项,设置好名字后就可以直接下一步了。

记得保存好这里会出现的Access Key ID和Secret access key

下载Upic & 配置Upic

1
brew install upic

或者来github页面上upic.dmg下载dmg格式安装。

安装好后到设置页面进行配置

网站名称没有可不填,直接用亚马逊给的。

填写完毕之后点验证就可以看成功没了。

之后可以在通用页面设置个快捷键,直接一键上传,方便很多。

不嫌麻烦的可以用aws cli。(逃

配置CloudFront

CloudFront

点建立分布后直接下一步,

源域名名称,因为刚刚设置了s3的静态托管,所以这里是可以直接选s3 bucket的website页面就好。

CNAME:没有可不写,如果想自定义域名的话就要设置。如果要自定义域名的话就要自定SSL凭证,要先在ACM中申请凭证后才可以设置

SSL证书:默认就可以,自定义凭证,aws要验证你是域名的所属者才能使用

其他的看着配置就行。

之后就会给分配一个固定cloudfront的域名。

大致上就这么一个结果。

ACM申请凭证

选dns验证,如果不能自己设置dns的话就选邮件验证(感觉更快

将给的这条CNAME记录在域名服务商中配置,等dns生效就好了。

自定义域名

我是在gandi买的域名,但是用了cloudflare的dns。所以直接在cloudflare上配置。

配置这两条,一条是刚刚在ACM申请中给等CNAME记录(在CloudFlare中要设置成DNS Only,不要弄成了Proxied状态)

另外一条则是将自己个性化域名导向到CloudFront分配的域名。

测试

能正常使用,,0 0

参考