使用Python 和Boto 库将文件备份到AmazonS3
AmazonS3 是一个很好用的云存储服务。 够便宜。 速度也不错。是个备份的好地方。
Boto 是Amazon WebService (包含S3)的Python绑定, 很好用。 (唯一的问题是稍微有一点滞后,比如S3现在已经有了在新加坡的区域。这个还没有更新)
Boto 提供一个很实用的命令行工具s3put, 可以很方便的将一个目录/文件存储到S3上去。
比如下面的脚本将/home/ftao/backup/daily 下面的文件保存在ftaobackup 这个bucket 上面去。
#!/bin/sh export AWS_ACCESS_KEY_ID=YOUR-AWS-ACCESS-KEY-ID export AWS_SECRET_ACCESS_KEY=YOUR-AWS-SECRET-ACCESS-KEY BUCKET_NAME=ftaobackup /home/ftao/env/bin/s3put -b $BUCKET_NAME --no_overwrite -p /home/ftao/backup/ /home/ftao/backup/daily
在给出一个创建bucket 的代码例子。
def create_or_get_bucket(bucket_name, location): import boto from boto.exception import S3CreateError conn = boto.connect_s3() bucket = conn.lookup(bucket_name) if bucket is None: bucket = conn.create_bucket(bucket_name, None, location) else: if bucket.get_location() != location: raise Exception('bad bucket location') return bucket if __name__ == "__main__": from boto.s3.connection import Location bucket = create_or_get_bucket('ftaobackup', "us-west-1") print bucket