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