亚马逊云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];
	}
    
}

你可能感兴趣的:(亚马逊云AWS s3 文件的上传和删除(JAVA demo))