亚马逊云AWS s3 文件的上传和删除(JAVA demo)

亚马逊云AWS s3 文件的上传和删除(JAVA demo)

一、添加pom依赖

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-aws-jdbc</artifactId>
</dependency>
<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-aws-messaging</artifactId>
</dependency>
<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-aws</artifactId>
</dependency>

二、创建OperationServiceImpl类,实现对AWS S3的文件上传、删除功能

@Service
public class OperationServiceImpl implements OperationService{
	
	@Autowired
	AwsS3GetInfo awsInfo;
	
	@Override 
	public Map<String,Object> uploadFileObject(UploadObject uploadObject){
		
		Map<String,Object>result=new HashMap<String,Object>();
		Map<String,Object>resultMap=new HashMap<String,Object>();
        
		MultipartFile uploadfile=uploadObject.getFile();
		String FileName=uploadfile.getName();
		String fileKey=UUID.randomUUID().toString().replaceAll("-", "")+"."+getFileType(FileName);
		
		try {
			BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsInfo.getSercretId(), awsInfo.getSecretKey());
			AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCreds))
					                                 .withRegion(awsInfo.getClientRegion()).build();
			
			InputStream ins= uploadfile.getInputStream();
			PutObjectRequest request = new PutObjectRequest(awsInfo.getBucketName(),fileKey,ins,new ObjectMetadata());
			s3Client.putObject(request.withCannedAcl(CannedAccessControlList.PublicRead));
		    resultMap.put("message","upload file success!");
		    resultMap.put("code",200);
		    return resultMap;
			
		}catch(SdkClientException | IOException e) {
		     // Amazon S3 couldn't be contacted for a response, or the client
		     // couldn't parse the response from Amazon S3.
		     e.printStackTrace();
			 resultMap.put("message","upload file failed!");
			 resultMap.put("code",250);
			 return resultMap;
		}
	}
	
	public Map<String,Object>deleteFileObject(String object_Key){
		Map<String,Object>result=new HashMap<String,Object>();
		Map<String,Object>resultMap=new HashMap<String,Object>();
		
		try {
			BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsInfo.getSercretId(), awsInfo.getSecretKey());
			AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                                                     .withRegion(awsInfo.getClientRegion()).build();
			s3Client.deleteObject(new DeleteObjectRequest(awsInfo.getBucketName(), object_Key));
			
			resultMap.put("message","delete file success!");
		    resultMap.put("code", 200);
		    return resultMap;
		}catch(SdkClientException  e) {
			
			e.printStackTrace();
			resultMap.put("messaage", "delete file failed!");
			resultMap.put("code", 250);
			return resultMap;
		}
	}
	
	
    public String getFileType(String fileName){
		
		String[] strArray=fileName.split("\\.");
		int suffixIndex=strArray.length-1;
		return strArray[suffixIndex];
	}
    
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值