Windows系统下的Minio的安装和运行
最后还需要创建一个buckets,用于存储文件,进行下述图片操作,然后直接输入bucket名即可。注:以上上传代码参考ruoyi,如有文件缺少情况,可以自行前往若依官网查看。通过上述图片步骤,即可下载 minio.exe 和 mc.exe两个文件。(2)将minio.exe 和 mc.exe文件移入 bin 目录当中。(1)在任意位置创建以下三个文件夹,例如我在E:\Minio下创建的。(3)直接
·
1、下载Minio
前往Minio官网进行下载(这里给的网址是Minio中文官网)
通过上述图片步骤,即可下载 minio.exe 和 mc.exe两个文件
2、创建目录
(1)在任意位置创建以下三个文件夹,例如我在E:\Minio下创建的
(2)将minio.exe 和 mc.exe文件移入 bin 目录当中
(3)直接在存放minio.exe文件的目录下启动cmd窗口’
(4)运行以下命令
E:\Minio\bin\minio.exe server E:\Minio\data --console-address ":9001" --address ":9000" > E:\Minio\logs\minio.log
注意:将上面文件地址修改为自己的
3、在运行上面命令后,去浏览器打开 localhost:9001 地址
该登录页面默认用户名密码都为:minioadmin
输入用户名密码即可进入
4、使用准备
首先我们需要创建一个用户
然后输入用户名,同时勾选该用户可拥有的权限,然后直接点击save
然后在用户界面进行如下操作
即可生成assesskey和secretkey,将其保存即可
最后还需要创建一个buckets,用于存储文件,进行下述图片操作,然后直接输入bucket名即可
5、文件上传相关代码
/**
* Minio 配置信息
*
* @author ruoyi
*/
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig
{
/**
* 服务地址
*/
private String url;
/**
* 用户名
*/
private String accessKey;
/**
* 密码
*/
private String secretKey;
/**
* 存储桶名称
*/
private String bucketName;
public String getUrl()
{
return url;
}
public void setUrl(String url)
{
this.url = url;
}
public String getAccessKey()
{
return accessKey;
}
public void setAccessKey(String accessKey)
{
this.accessKey = accessKey;
}
public String getSecretKey()
{
return secretKey;
}
public void setSecretKey(String secretKey)
{
this.secretKey = secretKey;
}
public String getBucketName()
{
return bucketName;
}
public void setBucketName(String bucketName)
{
this.bucketName = bucketName;
}
@Bean
public MinioClient getMinioClient()
{
return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
}
}
/**
* 通用映射配置
*
* @author ruoyi
*/
@Configuration
public class ResourcesConfig implements WebMvcConfigurer
{
/**
* 上传文件存储在本地的根路径
*/
@Value("${file.path}")
private String localFilePath;
/**
* 资源映射路径 前缀
*/
@Value("${file.prefix}")
public String localFilePrefix;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
{
/** 本地文件上传路径 */
registry.addResourceHandler(localFilePrefix + "/**")
.addResourceLocations("file:" + localFilePath + File.separator);
}
/**
* 开启跨域
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
// 设置允许跨域的路由
registry.addMapping(localFilePrefix + "/**")
// 设置允许跨域请求的域名
.allowedOrigins("*")
// 设置允许的方法
.allowedMethods("GET");
}
}
/**
* 文件请求处理 Controller
*
* @author igxia
*/
@RestController
public class SysFileController
{
private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
@Autowired
private ISysFileService sysFileService;
/**
* 文件上传请求
*/
@PostMapping("upload")
public R<SysFile> upload(MultipartFile file)
{
try
{
// 上传并返回访问地址
String url = sysFileService.uploadFile(file);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(url));
sysFile.setUrl(url);
return R.ok(sysFile);
}
catch (Exception e)
{
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
}
}
/**
* Minio 文件存储
*
* @author ruoyi
*/
@Service
public class MinioSysFileServiceImpl implements ISysFileService
{
@Autowired
private MinioConfig minioConfig;
@Autowired
private MinioClient client;
/**
* Minio文件上传接口
*
* @param file 上传的文件
* @return 访问地址
* @throws Exception
*/
@Override
public String uploadFile(MultipartFile file) throws Exception
{
String fileName = FileUploadUtils.extractFilename(file);
InputStream inputStream = file.getInputStream();
PutObjectArgs args = PutObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(fileName)
.stream(inputStream, file.getSize(), -1)
.contentType(file.getContentType())
.build();
client.putObject(args);
IoUtils.closeQuietly(inputStream);
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
}
}
注:以上上传代码参考ruoyi,如有文件缺少情况,可以自行前往若依官网查看 若依官网
更多推荐
已为社区贡献4条内容
所有评论(0)