in src/main/java/com/aliyun/oss/internal/ResponseParsers.java [2749:2850]
public static BucketInfo parseGetBucketInfo(InputStream responseBody) throws ResponseParseException {
try {
Element root = getXmlRootElement(responseBody);
Element bucketElem = root.getChild("Bucket");
BucketInfo bucketInfo = new BucketInfo();
// owner
Bucket bucket = new Bucket();
if (bucketElem.getChild("Owner") != null) {
String id = bucketElem.getChild("Owner").getChildText("ID");
String displayName = bucketElem.getChild("Owner").getChildText("DisplayName");
Owner owner = new Owner(id, displayName);
bucket.setOwner(owner);
}
// bucket
bucket.setName(bucketElem.getChildText("Name"));
bucket.setLocation(bucketElem.getChildText("Location"));
bucket.setExtranetEndpoint(bucketElem.getChildText("ExtranetEndpoint"));
bucket.setIntranetEndpoint(bucketElem.getChildText("IntranetEndpoint"));
bucket.setCreationDate(DateUtil.parseIso8601Date(bucketElem.getChildText("CreationDate")));
if (bucketElem.getChild("HierarchicalNamespace") != null) {
String hnsStatus = bucketElem.getChildText("HierarchicalNamespace");
bucket.setHnsStatus(hnsStatus);
}
if (bucketElem.getChild("ResourceGroupId") != null) {
String resourceGroupId = bucketElem.getChildText("ResourceGroupId");
bucket.setResourceGroupId(resourceGroupId);
}
if (bucketElem.getChild("StorageClass") != null) {
bucket.setStorageClass(StorageClass.parse(bucketElem.getChildText("StorageClass")));
}
if (bucketElem.getChild("AccessMonitor") != null) {
bucket.setAccessMonitor(bucketElem.getChildText("AccessMonitor"));
}
if (bucketElem.getChild("BucketPolicy") != null) {
Element policyElem = bucketElem.getChild("BucketPolicy");
if (policyElem.getChild("XCType") != null) {
bucket.setXcType(policyElem.getChildText("XCType"));
}
}
bucketInfo.setBucket(bucket);
// comment
if (bucketElem.getChild("Comment") != null) {
String comment = bucketElem.getChildText("Comment");
bucketInfo.setComment(comment);
}
// data redundancy type
if (bucketElem.getChild("DataRedundancyType") != null) {
String dataRedundancyString = bucketElem.getChildText("DataRedundancyType");
DataRedundancyType dataRedundancyType = DataRedundancyType.parse(dataRedundancyString);
bucketInfo.setDataRedundancyType(dataRedundancyType);
}
// acl
String aclString = bucketElem.getChild("AccessControlList").getChildText("Grant");
CannedAccessControlList acl = CannedAccessControlList.parse(aclString);
bucketInfo.setCannedACL(acl);
switch (acl) {
case PublicRead:
bucketInfo.grantPermission(GroupGrantee.AllUsers, Permission.Read);
break;
case PublicReadWrite:
bucketInfo.grantPermission(GroupGrantee.AllUsers, Permission.FullControl);
break;
default:
break;
}
// sse
Element sseElem = bucketElem.getChild("ServerSideEncryptionRule");
if (sseElem != null) {
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
new ServerSideEncryptionConfiguration();
ServerSideEncryptionByDefault applyServerSideEncryptionByDefault = new ServerSideEncryptionByDefault();
applyServerSideEncryptionByDefault.setSSEAlgorithm(sseElem.getChildText("SSEAlgorithm"));
if (sseElem.getChild("KMSMasterKeyID") != null) {
applyServerSideEncryptionByDefault.setKMSMasterKeyID(sseElem.getChildText("KMSMasterKeyID"));
}
if (sseElem.getChild("KMSDataEncryption") != null) {
applyServerSideEncryptionByDefault.setKMSDataEncryption(sseElem.getChildText("KMSDataEncryption"));
}
serverSideEncryptionConfiguration
.setApplyServerSideEncryptionByDefault(applyServerSideEncryptionByDefault);
bucketInfo.setServerSideEncryptionConfiguration(serverSideEncryptionConfiguration);
}
return bucketInfo;
} catch (JDOMParseException e) {
throw new ResponseParseException(e.getPartialDocument() + ": " + e.getMessage(), e);
} catch (Exception e) {
throw new ResponseParseException(e.getMessage(), e);
}
}