package org.dromara.common.oss.enumd; import lombok.AllArgsConstructor; import lombok.Getter; import software.amazon.awssdk.services.s3.model.BucketCannedACL; import software.amazon.awssdk.services.s3.model.ObjectCannedACL; /** * 桶访问策略配置 * * @author 陈賝 */ @Getter @AllArgsConstructor public enum AccessPolicyType { /** * private */ PRIVATE("0", BucketCannedACL.PRIVATE, ObjectCannedACL.PRIVATE, PolicyType.WRITE), /** * public */ PUBLIC("1", BucketCannedACL.PUBLIC_READ_WRITE, ObjectCannedACL.PUBLIC_READ_WRITE, PolicyType.READ_WRITE), /** * custom */ CUSTOM("2", BucketCannedACL.PUBLIC_READ, ObjectCannedACL.PUBLIC_READ, PolicyType.READ); /** * 桶 权限类型(数据库值) */ private final String type; /** * 桶 权限类型 */ private final BucketCannedACL bucketCannedACL; /** * 文件对象 权限类型 */ private final ObjectCannedACL objectCannedACL; /** * 桶策略类型 */ private final PolicyType policyType; public static AccessPolicyType getByType(String type) { for (AccessPolicyType value : values()) { if (value.getType().equals(type)) { return value; } } throw new RuntimeException("'type' not found By " + type); } }