处理amazon s3 put/get/delete/sign交互
pyawsbuckets的Python项目详细描述
处理Amazon S3交互
对象/文件可以放在s3中,从s3中检索和删除。阿尔索 可以生成签名的url以允许对特定的 S3存储桶中的对象。
需要Python2.7或更高版本。
可作为python包在http://pypi.python.org/pypi/pyawsbuckets[pip 安装pyawsbuckets] 来源于https://github.com/mhenwood/pyawsbuckets
用法
初始化
使用您的凭据启动访问对象:
from pyawsbuckets import AwsInterface aws_interface = AwsInterface(amazon_access_key, amazon_secret_key)
放置对象
在S3中将一个对象放入现有的桶中(重复:桶必须已经) 存在):
aws_interface.put( 'https', 'bucket999', 'somefile.pdf', content)
将对象放入S3的现有桶中,激活服务器端 该对象的加密:
aws_interface.put( 'https', 'bucket999', 'somefile.pdf', content, server_side_encryption=True)
put方法还接受可选的content_type关键字参数,该参数 应为标准的Internet媒体类型(例如“图像/JPEG”)
获取对象
从给定的存储桶中检索给定的对象:
object_contents = aws_interface( 'https', 'bucket999', 'somefile.pdf')
删除对象
从S3中删除对象:
aws_interface.delete('bucket999', 'somefile.pdf')
过期访问URL
获取一个签名的url,该url允许访问私有对象,但仅限于(例如)15 分钟。如果您希望用户能够下载private 对象,但仅限于短暂的时间窗口(例如,要停止, 链接共享:
expiring_url = aws_interface.sign_object_request('https', 'bucket999', 'somefile.pdf', 15)
使用https
您可以指定“https”作为放置/获取文件和 签字。
不过,您应该记住,鉴于通配符证书的工作方式, S3服务提供的证书与请求的证书不匹配 hostname如果您的bucket名称包含点(句点)。
这是因为“*.s3.amazon.com”的证书对于 主机名,比如“foo.s3.amazon.com”和“foo example com.s3.example.com”,但是 对于像“foo.bar.s3.amazon.com”这样的主机名不起作用。这是 通配符证书及其权限,不属于S3或此库。
因为bucket名称被转换成主机名,所以这很重要。它 因为你的请求会失败
简而言之:如果您打算使用https,那么就不要在bucket名称中使用点(句点)
已知限制
当前不处理来自AWS的“307”重定向-您将收到这些 一个bucket生命周期的前几个小时,直到AWS的DNS更改 完全传播。