package com.xiaomi.infra.galaxy.fds.client.model; import java.net.URI; import java.net.URISyntaxException; import com.xiaomi.infra.galaxy.fds.client.auth.Common; public class PutObjectResult { private String bucketName; private String objectName; private String accessKeyId; private String signature; private long expires; public String getBucketName() { return bucketName; } public void setBucketName(String bucketName) { this.bucketName = bucketName; } public String getObjectName() { return objectName; } public void setObjectName(String objectName) { this.objectName = objectName; } public String getAccessKeyId() { return accessKeyId; } public void setAccessKeyId(String accessKeyId) { this.accessKeyId = accessKeyId; } public String getSignature() { return signature; } public void setSignature(String signature) { this.signature = signature; } public long getExpires() { return expires; } public void setExpires(long expires) { this.expires = expires; } public String getRelativePreSignedUri() throws URISyntaxException { return new URI(null, null, null, -1, "/" + bucketName + "/" + objectName, Common.GALAXY_ACCESS_KEY_ID + "=" + accessKeyId + "&" + Common.EXPIRES + "=" + expires + "&" + Common.SIGNATURE + "=" + signature, null) .toString(); } private static String trimTailingSlash(String uri) { if (uri != null && !uri.isEmpty() && uri.charAt(uri.length() - 1) == '/') { uri = uri.substring(0, uri.length() - 1); } return uri; } public String getAbsolutePreSignedUri() throws URISyntaxException { return getAbsolutePreSignedUri(Common.DEFAULT_FDS_SERVICE_BASE_URI); } public String getAbsolutePreSignedUri(String fdsServiceBaseUri) throws URISyntaxException { return trimTailingSlash(fdsServiceBaseUri) + getRelativePreSignedUri(); } public String getCdnPreSignedUri() throws URISyntaxException { return getCdnPreSignedUri(Common.DEFAULT_CDN_SERVICE_URI); } public String getCdnPreSignedUri(String cdnServiceUri) throws URISyntaxException { return trimTailingSlash(cdnServiceUri) + getRelativePreSignedUri(); } }