Boto:在s3中更新文件保持权限

时间:2014-05-15 21:02:09

标签: boto

我正在尝试更新存储在s3中的文本文件但保留其权限,这是我的代码。

def update(key, str):
    s3 = boto.connect_s3()
    b = s3.get_bucket('bucket')
    k = bucket.get_key(key)

    acl = k.get_acl()
    k.set_contents_from_string(str)
    k.set_acl(acl)

我得到的错误如下。

S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>...</RequestId>     
    <HostId>...</HostId>
</Error>

我也试过

k.set_contents_from_string(str, policy=acl)

更新/替换文件但保留原始文件权限的正确方法是什么。

1 个答案:

答案 0 :(得分:0)

key.set_contents_from_string(str, policy='public-read', headers={'Content-Type': "something"})