当前位置: 首页 > news >正文

十大app黄皮软件排行榜/百度关键词优化公司

十大app黄皮软件排行榜,百度关键词优化公司,昆明网站建设费用,用服务器做网站精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 以下是一份详细的Spring Boot整合MinIO的教程,包含基础配置和常用文件操作示例: Spring Boot整合MinIO对象存储教程 一、MinIO简介 …

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取

以下是一份详细的Spring Boot整合MinIO的教程,包含基础配置和常用文件操作示例:


Spring Boot整合MinIO对象存储教程

一、MinIO简介

MinIO是一款高性能、云原生的分布式对象存储系统,兼容Amazon S3 API。适用于存储图片、文档、视频等非结构化数据。

二、环境准备

  1. 安装MinIO服务(推荐Docker方式)
docker run -d \-p 9000:9000 \-p 9001:9001 \--name minio \-v /mnt/data:/data \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=admin123" \quay.io/minio/minio server /data --console-address ":9001"
  1. 访问控制台:http://localhost:9001 使用admin/admin123登录

三、创建Spring Boot项目

  1. 使用Spring Initializr创建项目
  • 依赖选择:Spring Web、Lombok
  1. 添加MinIO依赖(pom.xml)
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.7</version>
</dependency>

四、配置MinIO参数

application.yml:

minio:endpoint: http://localhost:9000access-key: adminsecret-key: admin123bucket-name: mybucketsecure: false  # 是否使用https

配置类MinioConfig.java:

@Data
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig {private String endpoint;private String accessKey;private String secretKey;private String bucketName;private Boolean secure;@Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).secure(secure).build();}
}

五、实现MinIO工具类

MinioUtils.java:

@Slf4j
@Component
@RequiredArgsConstructor
public class MinioUtils {private final MinioClient minioClient;private final MinioConfig minioConfig;/*** 初始化存储桶*/public void createBucket() throws Exception {boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(minioConfig.getBucketName()).build());if (!found) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(minioConfig.getBucketName()).build());}}/*** 文件上传*/public String uploadFile(MultipartFile file, String objectName) throws Exception {if (file.isEmpty()) {throw new RuntimeException("上传文件不能为空");}createBucket(); // 确保存储桶存在minioClient.putObject(PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(objectName).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build());return minioConfig.getEndpoint() + "/" + minioConfig.getBucketName() + "/" + objectName;}/*** 文件下载*/public InputStream downloadFile(String objectName) throws Exception {return minioClient.getObject(GetObjectArgs.builder().bucket(minioConfig.getBucketName()).object(objectName).build());}/*** 删除文件*/public void deleteFile(String objectName) throws Exception {minioClient.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(objectName).build());}/*** 获取文件列表*/public List<String> listFiles() throws Exception {List<String> list = new ArrayList<>();Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(minioConfig.getBucketName()).build());for (Result<Item> result : results) {Item item = result.get();list.add(item.objectName());}return list;}
}

六、创建文件控制器

FileController.java:

@RestController
@RequestMapping("/file")
@RequiredArgsConstructor
public class FileController {private final MinioUtils minioUtils;@PostMapping("/upload")public String upload(@RequestParam("file") MultipartFile file) throws Exception {if (file.isEmpty()) {return "上传失败,请选择文件";}String objectName = UUID.randomUUID() + "-" + file.getOriginalFilename();return minioUtils.uploadFile(file, objectName);}@GetMapping("/download")public ResponseEntity<InputStreamResource> download(@RequestParam String fileName) throws Exception {InputStream inputStream = minioUtils.downloadFile(fileName);return ResponseEntity.ok().contentType(MediaType.APPLICATION_OCTET_STREAM).header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"").body(new InputStreamResource(inputStream));}@DeleteMapping("/delete")public String delete(@RequestParam String fileName) throws Exception {minioUtils.deleteFile(fileName);return "删除成功";}@GetMapping("/list")public List<String> listFiles() throws Exception {return minioUtils.listFiles();}
}

七、测试验证

  1. 上传文件测试(使用Postman):

    • POST /file/upload
    • 选择form-data格式,key为"file"
  2. 下载文件测试:

    • GET /file/download?fileName={文件名}
  3. 文件列表查询:

    • GET /file/list

八、常见问题处理

  1. 连接失败检查:

    • 确认MinIO服务状态
    • 检查endpoint地址和端口
    • 验证access-key/secret-key是否正确
  2. 存储桶权限问题:

    • 在MinIO控制台设置存储桶访问策略
    • 或通过SDK设置策略:
    minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(policyJson).build());
    
  3. 大文件上传:

    • 使用分片上传(multipart upload)
    • 调整客户端超时时间

九、扩展功能建议

  1. 添加文件预览功能
  2. 实现文件秒传(MD5校验)
  3. 集成Spring Security进行权限控制
  4. 添加文件分享链接(预签名URL)

整合完成后,你的Spring Boot应用即可实现完整的文件存储管理功能。建议在实际生产环境中:

  1. 使用HTTPS连接
  2. 配置合理的存储桶策略
  3. 定期进行存储桶维护
  4. 监控存储空间使用情况
http://www.whsansanxincailiao.cn/news/32033604.html

相关文章:

  • 网站怎么添加背景/各大网站提交入口
  • html做的网站排版导致乱码/seo推广效果
  • 网站建设公司郑州/杭州余杭区抖音seo质量高
  • 怎样提高网站浏览量/北京网站制作公司
  • 建设一个本地网站/百度网页版电脑版
  • 外贸建站哪家强外贸网站怎么做/谷歌浏览器下载手机版中文
  • 怎么做淘宝联盟的推广网站/北京百度推广代理
  • 百度怎么建立自己的网站/河池网站seo
  • 做网站是什么意思/指定关键词seo报价
  • 如何免费建立一个自己的网站/韩国热搜榜
  • 永久免费的wap建站平台/哪有培训seo
  • 政府单位门户网站开发文档/aso优化教程
  • 如何做繁体字网站/fifa世界排名最新
  • 联通公司做网站吗/项目推广计划书
  • 用软件做的网站权限/网络营销的核心是什么
  • 优秀甜品网站/发帖平台
  • 简约 网站模板/江苏疫情最新消息
  • 个人域名可以做KTV网站吗/厦门seo排名优化
  • 如何在国外网站上做外贸/seo计费怎么刷关键词的
  • 建大网站/深圳百度推广公司
  • 服装公司名字大全/seo免费视频教程
  • 日本做瞹瞹嗳视频网站/把百度网址大全设为首页
  • springboot社交网站开发/微信小程序开发多少钱
  • 广东网站建设服务商/免费创建网站
  • 江门英文网站建设/360广告投放平台
  • 要接入广告做啥网站/今日新闻最新消息大事
  • 佛山小学网站建设/域名查询站长工具
  • 上海多家商场调整营业时间/seo关键词快速获得排名
  • 淘宝网站如何做虚拟机/小红书推广方案
  • 加强学院网站的建设与管理/网站seo优化怎么做