腾讯云Qcloud s3 文件的上传和删除
一、创建springboot项目并添加所需要的依赖
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>5.4.6</version>
</dependency>
二、创建QCloudS3ServiceImpl类
@Service
public class QCloudS3ServiceImpl implements QCloudS3Service{
@Autowired
QCloudS3GetInfo qCloudInfo;
@Override
public Map<String, Object> uploadFileObject(UploadObject upload_file) {
Map<String, Object> resultMap = new HashMap<String, Object>();
Map<String, Object> result = new HashMap<String, Object>();
//上傳的文件為MultipartFile格式
MultipartFile uploadfile=upload_file.getFile();
String upload_FileName=uploadfile.getOriginalFilename();
//生成文件的key
String fileKey=UUID.randomUUID().toString().replaceAll("-","")+"."+getFileType(upload_FileName);
try {
COSCredentials cred = new BasicCOSCredentials(qCloudInfo.getSecretId(),qCloudInfo.getSecretKey());
//服务所在区域为成都_1
ClientConfig clientConfig = new ClientConfig(new Region(qCloudInfo.getRegion()));
COSClient cosclient = new COSClient(cred,clientConfig);
// //将MultipartFile对象转换成File对象
InputStream ins = uploadfile.getInputStream();
ObjectMetadata objectMetadata = new ObjectMetadata();
//上传文件
PutObjectRequest putObjectRequest=new PutObjectRequest(qCloudInfo.getBucketName(),fileKey,ins, objectMetadata);
PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);
cosclient.shutdown();
//返回数据
String url="https://"+qCloudInfo.getBucketName()+".cos."+qCloudInfo.getRegion()+".myqcloud.com/"+fileKey;
resultMap.put("message","upload picture success");
resultMap.put("code",200);
return resultMap;
}
catch (Exception e) {
e.printStackTrace();
resultMap.put("message","upload file failed");
resultMap.put("code",300);
return resultMap;
}
}
@Override
public Map<String, Object> deleteFileObject(String object_key){
Map<String, Object> resultMap = new HashMap<String, Object>();
Map<String, Object> result = new HashMap<String, Object>();
try {
// 1 初始化用户身份信息(secretId, secretKey)
COSCredentials cred = new BasicCOSCredentials(qCloudInfo.getSecretId(),qCloudInfo.getSecretKey());
// 2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
ClientConfig clientConfig = new ClientConfig(new Region(qCloudInfo.getRegion()));
// 3 生成cos客户端
COSClient cosclient = new COSClient(cred, clientConfig);
// //刪除對象,现获取文件的key
// String fileKey=file_Key.getFileName();
cosclient.deleteObject(qCloudInfo.getBucketName(),object_key);
cosclient.shutdown();
//返回信息
String url="https://"+qCloudInfo.getBucketName()+".cos."+qCloudInfo.getRegion()+".myqcloud.com/"+object_key;
resultMap.put("message","delete file success");
resultMap.put("code",200);
return resultMap;
}
catch (Exception e) {
e.printStackTrace();
resultMap.put("message","delete file failed");
resultMap.put("code",300);
return resultMap;
}
}
public String getFileType(String fileName) {
String[] strArray = fileName.split("\\.");
int suffixIndex = strArray.length -1;
return strArray[suffixIndex];
}