com.ksyun.ks3.service.request.SetBucketVersioningRequest Maven / Gradle / Ivy
package com.ksyun.ks3.service.request;
import com.ksyun.ks3.dto.BucketVersioningConfiguration;
import com.ksyun.ks3.dto.ObjectTag;
import com.ksyun.ks3.dto.ObjectTagging;
import com.ksyun.ks3.http.HttpHeaders;
import com.ksyun.ks3.http.HttpMethod;
import com.ksyun.ks3.http.Request;
import com.ksyun.ks3.utils.Md5Utils;
import com.ksyun.ks3.utils.StringUtils;
import com.ksyun.ks3.utils.XmlWriter;
import org.apache.http.util.Asserts;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import static com.ksyun.ks3.exception.client.ClientIllegalArgumentExceptionGenerator.*;
public class SetBucketVersioningRequest extends Ks3WebServiceRequest {
private String bucket;
private BucketVersioningConfiguration versioningConfiguration;
public String getBucket() {
return bucket;
}
public void setBucket(String bucket) {
this.bucket = bucket;
}
public BucketVersioningConfiguration getBucketVersioningConfiguration() {
return versioningConfiguration;
}
public void setBucketVersioningConfiguration(BucketVersioningConfiguration bucketVersioningConfiguration) {
this.versioningConfiguration = bucketVersioningConfiguration;
}
@Override
public void validateParams() throws IllegalArgumentException {
Asserts.notNull(this.bucket, "bucket == null");
Asserts.notNull(this.versioningConfiguration, "versioningConfiguration == null");
Asserts.notNull(this.versioningConfiguration.getStatus(), "versioningConfiguration.getStatus() == null");
Asserts.check(this.versioningConfiguration.getStatus().equals(BucketVersioningConfiguration.OFF) ||
this.versioningConfiguration.getStatus().equals(BucketVersioningConfiguration.ENABLED) ||
this.versioningConfiguration.getStatus().equals(BucketVersioningConfiguration.SUSPENDED),
"this.versioningConfiguration.getStatus() is illegal");
}
public SetBucketVersioningRequest(String bucketName) {
this.bucket = bucketName;
}
public SetBucketVersioningRequest(String bucketName, BucketVersioningConfiguration configuration) {
this.bucket = bucketName;
this.versioningConfiguration = configuration;
}
@Override
public void buildRequest(Request request) {
request.setMethod(HttpMethod.PUT);
request.setBucket(bucket);
request.addQueryParam("versioning", "");
XmlWriter writer = new XmlWriter();
writer.startWithNs("VersioningConfiguration");
writer.start("Status");
writer.value(versioningConfiguration.getStatus());
writer.end();
writer.end();
String xml = writer.toString();
request.addHeader(HttpHeaders.ContentMD5, Md5Utils.md5AsBase64(xml.getBytes()));
request.setContent(new ByteArrayInputStream(xml.getBytes()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy