处理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更改 完全传播。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Wildfly 8.2远程处理打开的通道太多   java如何为StringBuffer(“+”+“+”)分配内存   java从特定sql语句获取true(1)或false(0)   在Java中使用自定义权限   java Hashmap Json保存和加载   Android中的java地图视图   java如何获得正确的AWS可用性区域?   java从字符串中删除HashMap键   有没有一种简单的方法可以读取Java中的XML文件?   java ORMLite如何使用两个日期列进行查询,其中一个为空或小于另一个   使用java将带有动态字段的json文件反序列化到类中   当单元格包含空值时从excel获取数据的java   java在线程中实现runnable接口并使用此关键字   java为什么我会在这里遇到例外?