2014-05-15 1 views
0

s3에 저장된 텍스트 파일을 업데이트하려고하지만 사용 권한을 유지하려고합니다. 여기에 내 코드가 있습니다.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) 

을 시도했습니다.

+0

언제 오류가 발생합니까? ''set_contents_from_string'' 호출에서? 그렇다면 ACL을 설정하는 것과 관련이 없다고 생각합니다. 사용중인 자격 증명에 버킷에 쓸 수있는 권한이없는 것처럼 보입니다. – garnaat

+0

나는 같은 문제가있어. 당신의 해결책을 기다리고 있습니다. –

답변

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

답변으로 단순한 코드 이상을 추가하십시오. 나는이 답변을 "좋아 보인다"라고 표시했으나 몇 가지 설명을 추가하는 것이 좋습니다. – user1274820