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