腾讯云Qcloud s3 文件的上传和删除(JAVA demo)

腾讯云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];        
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值