在Amazon S3 上架设静态网站

s3简单使用文章中,简单的说道了s3的website功能。可以把s3的buckets当做一个静态网站来浏览,并做了一个简单的页面。

但是有2个问题没有解决。

1.域名问题。

http://lixin.s3-website-ap-northeast-1.amazonaws.com/ 这么有长度的域名肯定不是友好的。如果你自己拥有一个域名,那么一定是希望弄个简单好记有意义的名字来访问。这时候你需要设置别名(cname)来访问。

2.访问权限问题。

之前文章的例子中,整站只有2个文件,我都是手动设置他们的属性为everyone可读。假使你的静态网站很多文件,那么手动设置不可能,得使用一个配置文件来全局设置才行。

首先,我在s3上新建了一个叫“lixin-log”的buckets,获得其地址http://lixin-log.s3-website-ap-northeast-1.amazonaws.com/ ,然后新建一个别名cname(log.lixin.me)指向这个地址,然后访问。发现以下错误。

404 Not Found

  • Code: NoSuchBucket
  • Message: The specified bucket does not exist
  • BucketName: log.lixin.me

错误显示,找不到一个叫做“log.lixin.me”的buckets。确实,我只新建了一个叫“lixin-log”的buckets。

从错误提示中,我们可以知道,使用别名映射的时候,你的buckets的名字应该和别名一致。即我使用一个叫做“log.lixin.me”的域名来访问s3,那么在s3上的buckets的名字就应该叫做“log.lixin.me”。域名对应buckets名。

 

当域名和buckets名字问题解决后,再次浏览,之前的404错误页面没有了,取而代之的是403页面。

403 Forbidden

  • Code: AccessDenied
  • Message: Access Denied

没有权限访问。因为现在里面的文件都还是私有的,没有配置everyone可读。这里不再是手动一个个的设置,而是使用Policy文件来设置。

Policy是一个json文本,在buckets属性的Permission选项卡里。

{
  "Id": "Policy1326378188459",
  "Statement": [
    {
      "Sid": "Stmt1326378181469",
      "Action": [
        ""
      ],
      "Effect": "",
      "Resource": "
      "Principal": {
        "AWS": [
          ""
        ]
      }
    }
  ]
}

上面就是一个简单的policy文件。大致意思就是,允许*所有用户具有读取s3.lixin.me这个buckets下的所有文件。这样就把整个buckets当作可读的静态网站了。

 

原文出处

转载于:https://my.oschina.net/lixinspace/blog/39239

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值