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

com.mizhousoft.tencent.boot.oss.configuration.TencentOSSConfiguration Maven / Gradle / Ivy

The newest version!
package com.mizhousoft.tencent.boot.oss.configuration;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.mizhousoft.cloudsdk.CloudSDKException;
import com.mizhousoft.cloudsdk.cdn.CDNProfile;
import com.mizhousoft.cloudsdk.oss.OSSClient;
import com.mizhousoft.tencent.boot.oss.properties.COSProfileListProperties;
import com.mizhousoft.tencent.boot.oss.properties.COSProfileProperties;
import com.mizhousoft.tencent.oss.COSProfile;
import com.mizhousoft.tencent.oss.TencentOSSClient;

/**
 * TencentOSSConfiguration
 *
 * @version
 */
@Configuration
public class TencentOSSConfiguration
{
	@Autowired
	private COSProfileListProperties listProperties;

	@Bean(destroyMethod = "destroy")
	public OSSClient getOSSClient() throws CloudSDKException
	{
		TencentOSSClient ossClient = new TencentOSSClient();

		List list = listProperties.getList();
		if (null != list)
		{
			for (COSProfileProperties item : list)
			{
				if (StringUtils.isBlank(item.getIdentifier()))
				{
					throw new CloudSDKException("OSS identifier is null.");
				}

				COSProfile cosProfile = new COSProfile();
				cosProfile.setBucketName(item.getBucketName());
				cosProfile.setAccessKey(item.getAccessKey());
				cosProfile.setSecretKey(item.getSecretKey());
				cosProfile.setRegion(item.getRegion());

				if (null != item.getCdnEndpoint())
				{
					CDNProfile cdnProfile = new CDNProfile();
					cdnProfile.setEndpoint(item.getCdnEndpoint());
					cdnProfile.setAuthzEnable(null != item.getSecretKey());
					cdnProfile.setAuthzMode(item.getCdnAuthzMode());
					cdnProfile.setSecretKey(item.getCdnSecretKey());

					ossClient.addBucketService(item.getIdentifier(), cosProfile, cdnProfile);
				}
				else
				{
					ossClient.addBucketService(item.getIdentifier(), cosProfile);
				}
			}
		}

		return ossClient;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy