Java代码部署到Linux的docker,无法存储文件到Linux里。
使用SpringBoot做了一个博客,然后用户头像还有图片都是存储到OSS里的,但是因为OSS过期了。我想着就是存储几个图片,然后写点笔记用。
我就想把图片存储到Linux里的nginx,因为图片放到里面可以直接访问,我觉得只要图片存储到里面,也是可以正常访问的。但是问题出在图片无法存储到linux里面。
这是我写的后端存储代码
@RestController
public class UploadController {
@Autowired
private LocalUploadService localUploadService;
@PostMapping("/upload")
public ResponseResult uploadImg(MultipartFile img) {
if (img == null) {
throw new SystemException(AppHttpCodeEnum.SYSTEM_ERROR);
}
// 图片名称处理
String originalFilename = img.getOriginalFilename();
if (!originalFilename.endsWith(".png") && !originalFilename.endsWith("jpg") && !originalFilename.endsWith("jpeg")) {
throw new SystemException(AppHttpCodeEnum.FILE_TYPE_ERROR);
}
String ext = "." + originalFilename.split("\\.")[1];
String uuid = UUID.randomUUID().toString().replace("-", "");
String fileName = uuid + ext;
String filePath = PathUtils.generateFilePath(originalFilename);
ApplicationHome applicationHome = new ApplicationHome(this.getClass());
// 可以正常访问的图片路径示例: http://47.120.13.189:8093/static/images/41b027bf9ce24cf88c2628d10d4fabd8.png
// 端口
String host = "http://47.120.13.189:8093";
// 访问中缀
String infix = "/static/images/";
// 访问路径
String accessPath = host + infix + fileName;
// 存储路径
String storagePath = "/app/nginx/html/blog_dist/static/images";
try {
img.transferTo(new File(storagePath));
} catch (IOException e) {
e.printStackTrace();
}
return ResponseResult.okResult(accessPath);
}
}
这个是linux的需要存储到的路径,但是存不进去。
我有一个admin后台添加预览图的代码,照着这样写,docker直接启动不了了
希望可以教一下怎么存储图片到linux指定路径