用S3做资源下载和P2P种子

有时候我们想分享个资源给别人,但是放在线上业务的Nginx上也不太合适,这是可以上传到S3,然后把object设置ACL为public-read,然后拼装下下载的url就可以提供给任何人下载,同时,bucket可以设置lifecycle,可以设置该bucket下的某个目录下的资源的生存天数,到期后自动被删除。

上传S3的部分就不说了,详见这个页面(python版的)
http://boto.readthedocs.org/en/latest/s3_tut.html#storing-large-data

然后我们可以设置ACL给object,然后拼出下载的url和torrent的url

import boto
c = boto.connect_s3()
b = c.get_bucket(bucket_name)
b.set_acl('public-read', object_key)
object_download_url = "http://" + bucket_name + ".s3.amazonaws.com/" + object_key
object_torrent_url = object_download_url + "?torrent"

这个S3的下载url后面加上?torrent就可以以P2P协议下载,直接点这个url会下载下来一个BT种子。