腾讯云上传步骤:

service-vod模块化中
①、参考文档,引入依赖
②、配置文件application.properties
③、创建工具类
- 初始化bean的时候读取配置文件
java
@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;
@Override
public void afterPropertiesSet()throws Exception{
END_POINT = region;
ACCESS_KEY_ID = secretId;
ACCESS_KEY_SECRET = secretKey;
BUCKET_NAME = bucketName;
}
}
③、业务
java
@Api(tags = "文件上传接口")
@RestController
@RequestMapping("/admin/vod/file")
@CrossOrigin
public class FileUploadController{
@Autowired
private FileService fileService;
@ApiOperation("文件上传")
@PostMapping("upload")
public Result uploadFile(MultipartFile file){
String url = fileService.upload(file);
return Result.ok(url).message("上传文件成功");
}
}
java
@Service
public class FileServiceImpl implements FileService{
@Override
public 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;
}
}