我有一个Java Spring MVC Web应用程序。从客户端,通过AngularJS,我正在上传文件并将其作为Web服务发布到Controller。
在我的控制器中,我将它作为 MultipartFile获取, 并且可以将其复制到本地计算机。
但是我想将文件上传到 Amazone S3 存储桶。所以我必须将其转换为 java.io.File
。现在,我正在将其复制到本地计算机,然后使用jets3t 上载到S3 。
这是我在控制器中转换的方式
MultipartHttpServletRequest mRequest=(MultipartHttpServletRequest)request;
Iterator itr=mRequest.getFileNames();
while(itr.hasNext()){
MultipartFile mFile=mRequest.getFile(itr.next());
String fileName=mFile.getOriginalFilename();
fileLoc="/home/mydocs/my-uploads/"+date+"_"+fileName; //date is String form of current date.
然后我正在使用SpringFramework的FIleCopyUtils
File newFile = new File(fileLoc);
// if the directory does not exist, create it
if (!newFile.getParentFile().exists()) {
newFile.getParentFile().mkdirs();
}
FileCopyUtils.copy(mFile.getBytes(), newFile);
因此它将在本地计算机上创建一个新文件。我在S3中赞扬的那个文件
S3Object fileObject = new S3Object(newFile);
s3Service.putObject("myBucket", fileObject);
它在我的本地系统中创建文件。我不想创造。
在本地系统中不创建文件的情况下,如何将 MultipartFIle 转换为 java.io.File ?