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

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

package com.ksyun.ks3.service.request;

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 java.security.PrivateKey;

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

public class InitiateBucketWormRequest extends Ks3WebServiceRequest{
    private String bucketName;
    private int retentionPeriodInDays;

    public InitiateBucketWormRequest(String bucketName, int retentionPeriodInDays){
        this.bucketName = bucketName;
        this.retentionPeriodInDays = retentionPeriodInDays;
    }

    public String getBucketName() {
        return bucketName;
    }

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

    public int getRetentionPeriodInDays() {
        return retentionPeriodInDays;
    }

    public void setRetentionPeriodInDays(int retentionPeriodInDays) {
        this.retentionPeriodInDays = retentionPeriodInDays;
    }

    @Override
    public void buildRequest(Request request){
        request.setMethod(HttpMethod.POST);
        request.setBucket(bucketName);
        request.addQueryParam("worm","");
        XmlWriter writer = new XmlWriter();
        writer.start("InitiateWormConfiguration");
        writer.start("RetentionPeriodInDays").value(retentionPeriodInDays).end();
        writer.end();
        String xml = writer.toString();
        request.addHeader(HttpHeaders.ContentMD5, Md5Utils.md5AsBase64(xml.getBytes()));
        request.setContent(new ByteArrayInputStream(xml.getBytes()));

    }
    @Override
    public void validateParams(){
        if(StringUtils.isBlank(this.bucketName)){
            throw notNull("bucketName");
        }
        if(retentionPeriodInDays < 1 || retentionPeriodInDays > 36500){
            throw between("retentionPeriodInDays",String.valueOf(retentionPeriodInDays),"1","36500");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy