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

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

package com.ksyun.ks3.service.request;

import com.ksyun.ks3.dto.ServerSideEncryptionConfiguration;
import com.ksyun.ks3.dto.ServerSideEncryptionResult;
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.notNull;

public class PutBucketEncryptionRequest extends Ks3WebServiceRequest{
    private String bucketName;
    private ServerSideEncryptionConfiguration serverSideEncryptionConfiguration;

    public PutBucketEncryptionRequest(String bucketName, ServerSideEncryptionConfiguration serverSideEncryptionConfiguration){
        this.bucketName = bucketName;
        this.serverSideEncryptionConfiguration = serverSideEncryptionConfiguration;
    }

    public String getBucketName() {
        return bucketName;
    }

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


    @Override
    public void buildRequest(Request request){
        request.setMethod(HttpMethod.PUT);
        request.setBucket(bucketName);
        request.addQueryParam("encryption", "");
        XmlWriter writer = new XmlWriter();
        writer.startWithNs("ServerSideEncryptionConfiguration");
        writer.start("Rule");
        writer.start("ApplyServerSideEncryptionByDefault");
        if(serverSideEncryptionConfiguration.getRule().getApplyServerSideEncryptionByDefault().getKmsMasterKeyID() != null){
            writer.start("KMSMasterKeyID").value(serverSideEncryptionConfiguration.getRule().getApplyServerSideEncryptionByDefault().getKmsMasterKeyID()).end();
        }
        if(serverSideEncryptionConfiguration.getRule().getApplyServerSideEncryptionByDefault().getSseAlgorithm() != null){
            writer.start("SSEAlgorithm").value(serverSideEncryptionConfiguration.getRule().getApplyServerSideEncryptionByDefault().getSseAlgorithm()).end();
        }
        writer.end();
        writer.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");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy