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

com.ksyun.ks3.service.request.PutBucketReplicationConfigurationRequest Maven / Gradle / Ivy

package com.ksyun.ks3.service.request;

import com.ksyun.ks3.dto.ReplicationRule;
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 java.io.ByteArrayInputStream;

import static com.ksyun.ks3.exception.client.ClientIllegalArgumentExceptionGenerator.notCorrect;
import static com.ksyun.ks3.exception.client.ClientIllegalArgumentExceptionGenerator.notNull;


public class PutBucketReplicationConfigurationRequest extends Ks3WebServiceRequest {

    private String bucketName;

    private ReplicationRule replicationRule;

    public PutBucketReplicationConfigurationRequest() {
    }

    public PutBucketReplicationConfigurationRequest(String bucketName, ReplicationRule replicationRule) {
        this.bucketName = bucketName;
        this.replicationRule = replicationRule;
    }

    public String getBucketName() {
        return this.bucketName;
    }

    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }


    public ReplicationRule getReplicationRule() {
        return replicationRule;
    }

    public void setReplicationRule(ReplicationRule replicationRule) {
        this.replicationRule = replicationRule;
    }

    public void validateParams() {
        if (StringUtils.isBlank(this.bucketName))
            throw notNull("bucketName");
        if (this.replicationRule == null)
            throw notNull("replicationRule");
        if (this.replicationRule.getTargetBucket() == null)
            throw notNull("targetBucket");
        if (this.replicationRule.getPrefixList().size() > 5)
            throw notCorrect("prefixList", this.replicationRule.getPrefixList().toString(), "prefixList too many");
    }

    public void buildRequest(Request request) {
        request.setMethod(HttpMethod.PUT);
        request.setBucket(bucketName);
        request.addQueryParam("crr", "");
        XmlWriter writer = new XmlWriter();
        writer.startWithNs("Replication");
        for (String prefix : replicationRule.getPrefixList()) {
            writer.start("prefix").value(prefix).end();
        }
        if (replicationRule.isDeleteMarkerStatus())
            writer.start("DeleteMarkerStatus").value(ReplicationRule.ENABLED).end();
        else
            writer.start("DeleteMarkerStatus").value(ReplicationRule.DISABLED).end();
        writer.start("targetBucket").value(replicationRule.getTargetBucket()).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