行业资讯
AWS s3 做静态网站站点
2019-05-27

最近看s3内容,发现很好玩,s3竟然支持静态网站内容的设置,也就意味着,如果你的网站全部是静态页面,就可以全部放到s3上了(存储超级便宜),不用部署任何apache、nginx程序了,而且还非常合适,那今天我们就看看如何设置S3做website的吧,首先,我们创建一个bucket的,然后上传我们的网站内容,最后进行访问,因为s3是建立bucket是不区分region的,所以创建的名称不能与其他人的相同,在创建的时候要检查是否已经有同名的bucket了,如果存在就打日志,如果没有就可以创建了,以下是这部分代码实现:

 

#!/usr/bin/env python

 

#autor:mindgn.cn

#date:2015-7

 

import os

import boto

import time

 

def create_bucket(bucket_name):

    s3 = boto.connect_s3()

    bucket = s3.lookup(bucket_name)

    if bucket:

        print 'Bucket (%s) already exists' %bucket_name

    else:

        try:

            bucket = s3.create_bucket(bucket_name)

        except s3.provider.storage_create_error, e:

            print 'Bucket (%s) is not be used' %bucket_name

    return bucket


 

 

如果没问题,以上函数就是创建一个你独有的bucket,往下就是上传你的web站点文件了,因为是测试,我的相对很简答,就上传1个文件看效果:

 

 

def upload_website(bucket_name, webfile,index_page, error_file=None):

    s3 = boto.connect_s3()

    bucket = s3.lookup(bucket_name)

    bucket.set_canned_acl('public-read')

 

    

    key = bucket.new_key(webfile)

    key.content_type = 'txtx/html'

    key.set_contents_from_filename(webfile,policy='pulic-read')

 

    bucket.configure_websiet(index_page, error_file)

 

    time.sleep(5)

 

    print 'grant website info:'

    print bucket.get_website_endpoint()

 

create_bucket('bicherweb')

upload_website('bicherweb', 'html', 'index.html')


 

 

到此就创建完了,最后是测试,get_website_endpoint()的返回的是访问网站的域名,但并不代表这个bucket的配置是正确的,原文如下:

 

Returns the fully qualified hostname to use is you want to access this bucket as a website. This doesn’t validate whether the bucket has been correctly configured as a website or not.

 

       运行完返回的是s3的一个访问域名,当然我们不能用这个来访问,谁也记不住,所以你需要在你的DNS后台CNAME到这个域名,这样就可以输入类似http://www.xxx.com来访问你的网站了,不过提醒下,s3是按访问次数来收取费用的,如果访问量很大,需要关注下费用情况,今天就到这里,关于s3还有很多好玩的事值得去研究,有兴趣的兄弟可以去看官网文档。

咨询热线
预约试听:186 8212 6618
联系地址
深圳地址:广东省深圳市宝安区西乡街道劳动路冠润商务大厦13F整层
南宁地址:广西南宁市西乡塘高新区东盟财经广场25楼
Copyright © 2017-2023 南宁威扬教育技术有限公司 版权所有      桂ICP备2021005359号-1 桂公网安备 2021005359号