¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill åºéª (smallchill@163.com) |
| | | */ |
| | | package org.springblade.core.oss.config; |
| | | |
| | | import com.qcloud.cos.COSClient; |
| | | import com.qcloud.cos.ClientConfig; |
| | | import com.qcloud.cos.auth.BasicCOSCredentials; |
| | | import com.qcloud.cos.auth.COSCredentials; |
| | | import com.qcloud.cos.region.Region; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.core.oss.TencentCosTemplate; |
| | | import org.springblade.core.oss.props.OssProperties; |
| | | import org.springblade.core.oss.rule.OssRule; |
| | | import org.springframework.boot.autoconfigure.AutoConfiguration; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.boot.context.properties.EnableConfigurationProperties; |
| | | import org.springframework.context.annotation.Bean; |
| | | |
| | | /** |
| | | * <p> |
| | | * è
¾è®¯äº COS èªå¨è£
é
|
| | | * </p> |
| | | * |
| | | * @author yangkai.shen |
| | | * @date Created in 2020/1/7 17:24 |
| | | */ |
| | | @AllArgsConstructor |
| | | @AutoConfiguration(after = OssConfiguration.class) |
| | | @ConditionalOnClass({COSClient.class}) |
| | | @EnableConfigurationProperties(OssProperties.class) |
| | | @ConditionalOnProperty(value = "oss.name", havingValue = "tencentcos") |
| | | public class TencentCosConfiguration { |
| | | |
| | | private final OssProperties ossProperties; |
| | | private final OssRule ossRule; |
| | | |
| | | |
| | | @Bean |
| | | @ConditionalOnMissingBean(COSClient.class) |
| | | public COSClient ossClient() { |
| | | // åå§åç¨æ·èº«ä»½ä¿¡æ¯ï¼secretId, secretKeyï¼ |
| | | COSCredentials credentials = new BasicCOSCredentials(ossProperties.getAccessKey(), ossProperties.getSecretKey()); |
| | | // 设置 bucket çåºå, COS å°åçç®ç§°è¯·åç
§ https://cloud.tencent.com/document/product/436/6224 |
| | | Region region = new Region(ossProperties.getRegion()); |
| | | // clientConfig ä¸å
å«äºè®¾ç½® region, https(é»è®¤ http), è¶
æ¶, 代çç set æ¹æ³, 使ç¨å¯åè§æºç æè
常è§é®é¢ Java SDK é¨åã |
| | | ClientConfig clientConfig = new ClientConfig(region); |
| | | // 设置OSSClientå
许æå¼çæå¤§HTTPè¿æ¥æ°ï¼é»è®¤ä¸º1024个ã |
| | | clientConfig.setMaxConnectionsCount(1024); |
| | | // 设置Socketå±ä¼ è¾æ°æ®çè¶
æ¶æ¶é´ï¼é»è®¤ä¸º50000毫ç§ã |
| | | clientConfig.setSocketTimeout(50000); |
| | | // 设置建ç«è¿æ¥çè¶
æ¶æ¶é´ï¼é»è®¤ä¸º50000毫ç§ã |
| | | clientConfig.setConnectionTimeout(50000); |
| | | // 设置ä»è¿æ¥æ± ä¸è·åè¿æ¥çè¶
æ¶æ¶é´ï¼åä½ï¼æ¯«ç§ï¼ï¼é»è®¤ä¸è¶
æ¶ã |
| | | clientConfig.setConnectionRequestTimeout(1000); |
| | | return new COSClient(credentials, clientConfig); |
| | | } |
| | | |
| | | @Bean |
| | | @ConditionalOnBean({COSClient.class}) |
| | | @ConditionalOnMissingBean(TencentCosTemplate.class) |
| | | public TencentCosTemplate tencentCosTemplate(COSClient cosClient) { |
| | | return new TencentCosTemplate(cosClient, ossProperties, ossRule); |
| | | } |
| | | |
| | | } |