Ваш вопрос неясен, и это полностью вне нашего воображения, каков ваш код без каких-либо примеров с вашей стороны. Но все равно звучит так, как будто вы говорите:
<xsd:attribute name="object-acl-expression">
<xsd:annotation>
<xsd:documentation>
A SpEL expression to evaluate S3Object ACL at runtime against request message
for the 'upload' operation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
Результатом этого выражения должен быть экземпляр AccessControlList
или CannedAccessControlList
:
Object acl = this.objectAclExpression.getValue(this.evaluationContext, requestMessage);
Assert.state(acl instanceof AccessControlList || acl instanceof CannedAccessControlList,
"The 'objectAclExpression' ["
+ this.objectAclExpression.getExpressionString()
+ "] must evaluate to com.amazonaws.services.s3.model.AccessControlList " +
"or must evaluate to com.amazonaws.services.s3.model.CannedAccessControlList. " +
"Gotten: [" + acl + "]");
Итак, если вы говорите о полных правах доступа , похоже, вам просто нужно использовать CannedAccessControlList.AwsExecRead
в этом выражении:
/**
* Specifies the owner is granted {@link Permission#FullControl}. Amazon EC2
* is granted {@link Permission#Read} access to GET an Amazon Machine Image
* (AMI) bundle from Amazon S3.
*/
AwsExecRead("aws-exec-read");
Такое выражение может выглядеть так:
object-acl-expression="T(com.amazonaws.services.s3.model.CannedAccessControlList).AwsExecRead"