All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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