这对我有用。我使用了spring boot和根据Multipart机制上传的文件。我想将我的图像保存在我的 aws s3 存储桶中的照片文件夹中。我需要像这样保存照片/mypic.jpg
----控制器类方法----
@PostMapping("/uploadFile")
public String uploadFile(@RequestPart(value = "file") MultipartFile file) throws IOException {
return this.amazonClient.uploadFile(file);
}
----服务类(控制器的实现)----
public String uploadFile(MultipartFile multipartFile) throws IOException {
try {
File file = convertMultiPartToFile(multipartFile);
String fileName = "photoes/"+generateFileName(multipartFile); //here give any folder name you want
uploadFileTos3bucket(fileName, file);
} catch (AmazonServiceException ase) {
logger.info("Caught an AmazonServiceException from GET requests, rejected reasons:");
}
return fileName;
}
重点是将您想要的文件夹名称连接为文件名的前缀
另外,我将向您展示如何删除文件夹。关键是将文件夹名称作为keyName(键名称是s3存储桶中上传的对象名称。)。我也会展示代码片段。
----控制器类方法----
@DeleteMapping("/deleteFile")
public String deleteFile(@RequestPart(value = "keyName") String keyName) {
return this.amazonClient.deleteFile(keyName);
}
----服务类(控制器的实现)----
public String deleteFile(String keyName){
try {
s3client.deleteObject(new DeleteObjectRequest(bucketName, keyName));
} catch (SdkClientException e) {
e.printStackTrace();
}
return "deleted file successfully!";
}
要删除我们创建的照片文件夹,请像这样调用方法。deleteFile("photos/")
重要:- / 是强制性的