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

com.ksyun.ks3.service.request.ExtendBucketWormRequest 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.service.response.ExtendBucketWormResponse;
import com.ksyun.ks3.utils.Md5Utils;
import com.ksyun.ks3.utils.XmlWriter;

import java.io.ByteArrayInputStream;

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

public class ExtendBucketWormRequest extends Ks3WebServiceRequest{

    private String bucketName;
    private String wormId;
    int retentionPeriodInDays;

    public String getBucketName() {
        return bucketName;
    }

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

    public String getWormId() {
        return wormId;
    }

    public void setWormId(String wormId) {
        this.wormId = wormId;
    }

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

    @Override
    public void buildRequest(Request request) {
        request.setMethod(HttpMethod.POST);
        request.setBucket(bucketName);
        request.addQueryParam("wormId",wormId);
        request.addQueryParam("wormExtend","");
        XmlWriter writer = new XmlWriter();
        writer.start("ExtendWormConfiguration");
        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(bucketName == null){
            throw notNull("bucketName");
        }
        if(wormId == null){
            throw notNull("wormId");
        }
        if(retentionPeriodInDays < 1 || retentionPeriodInDays > 36500){
            throw between("retentionPeriodInDays",String.valueOf(retentionPeriodInDays),"1","36500");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy