2012-09-19 2 views
2

우리 고객이 S3 버킷에 액세스 할 수있는 서비스를 제공하고 S3 버킷에 항목을 푸시합니다. S3에 복수의 ACL을 설정해야합니다.

  • 여기
  • 이 항목에 대한 모든 권한을 가지고 버킷의 소유자를 설정 공개적으로 읽을 수 있도록 항목에

    1. 설정 권한 : 우리는이 일을 할 수 있어야합니다 나는 이미 알고 :

      :

      내가 PUT

      문제로 2 통조림-ACL을 가질 수 없습니다

      ACL 헤더를 설정할 수 있지만 AFAIK 소유자 (cannonical_id 또는 전자 메일처럼)에 대한 정보를 모른 채 헤더를 통해 "소유자가 소유 한 전체 사용 권한"을 설정할 방법이 없습니까? "공개 읽기"(예 : "http://acs.amazonaws.com/groups/global/AllUsers")와 같이 "소유자가 가진 전체 권한"의 "uri"버전이 있습니까?

      두 가지 별도의 호출 (버킷 소유자 정보를 얻으려는 경우)과 권한을 둘 다 사용하여 항목을 넣을 필요가 없습니다.

    답변

    0

    동일한 문제가 발생했습니다. 다음 코드는 필요한 사용 권한을 얻을 수 있습니다.

    AccessControlList accessControlList = new AccessControlList(); 
    accessControlList.grantPermission(GroupGrantee.AllUsers, Permission.Read); 
    accessControlList.grantPermission(new CanonicalGrantee(s3Client.getS3AccountOwner() 
        .getId()), Permission.FullControl); 
    putReq.setAccessControlList(accessControlList);