騰訊云上傳步驟:
service-vod模塊化中
①、參考文檔,引入依賴
②、配置文件application.properties
③、創建工具類
- 初始化bean的時候讀取配置文件
@Component
public class ConstantPropertiesUtil implements InitializingBean{@Value("${tencent.cos.file.region}")private String region;@Value("${tencent.cos.file.secretid}")private String secretId;@Value("${tencent.cos.file.secretKey}")private String secretKey;@Value("${tencent.cos.file.bucketname}")private String bucketName;//對上述私有變量進行公有化訪問private static String END_POINT;private static String ACCESS_KEY_ID;private static String ACCESS_KEY_SECRET;private static String BUCKET_NAME;@Overridepublic void afterPropertiesSet()throws Exception{END_POINT = region;ACCESS_KEY_ID = secretId;ACCESS_KEY_SECRET = secretKey;BUCKET_NAME = bucketName;}
}
③、業務
@Api(tags = "文件上傳接口")
@RestController
@RequestMapping("/admin/vod/file")
@CrossOrigin
public class FileUploadController{@Autowiredprivate FileService fileService;@ApiOperation("文件上傳")@PostMapping("upload")public Result uploadFile(MultipartFile file){String url = fileService.upload(file);return Result.ok(url).message("上傳文件成功");}
}
@Service
public class FileServiceImpl implements FileService{@Overridepublic String upload(MultipartFile file){//初始化用戶身份信息String secretId = ConstantPropertiesUilt.ACCESS_KEY_ID;String secretKey = ConstantPropertiesUtil.ACCESS_KEY_SECRET;COSCredentials cred = new BasicCOSCredentials(secretId,secretKey);//設置bucket的地域Region region = new Region(ConstantPropertiesUtil.END_POINT);ClientConfig clientConfig = new ClientConfig(region);//這里建議設置使用https協議clientConfig.setHttpProtocol(HttpProtocol.https);//生成cos客戶端COSClient cosClient = new COSClient(cred,clientConfig);//存儲桶的命名格式為BuCKETnAME-APPID,此處填寫的存儲桶名稱必需為此格式String bucketName = ConstantPropertiesUtil.BUCKET_NAME;//UUID+文件名,保證上傳的文件唯一String key = UUID.randomUUID().toString().replaceAll("-","")+file.getOriginalFilename();//對上傳文件分組,根據當前日期String dateTime = new DataTime.toString("yyyy/MM/dd");key = dateTime+"/"+key;try{//獲取上傳文件輸入流InputStream inputStream = file.getInputtream();ObjectMetaData objectMetadata = new ObjectMetadata();PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,key,inputStream,objectMetadata);PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);String url = "https://" +bucketName+"."+"cos"+ConstantProperte.END_POINT+".myqcloud.com"+"/"+key;return url;}catch(Exception e){e.printStackTrace();}return null;}
}