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

杭州企业网站设计制作太湖县城乡建设局网站

杭州企业网站设计制作,太湖县城乡建设局网站,wordpress 菜单加图标,寻找小程序代理1 MinIO核心概念 下面介绍MinIO中的几个核心概念#xff0c;这些概念在所有的对象存储服务中也都是通用的。 对象#xff08;Object#xff09; 对象是实际的数据单元#xff0c;例如我们上传的一个图片。 存储桶#xff08;Bucket#xff09; 存储桶是用于组织对象的命…1 MinIO核心概念 下面介绍MinIO中的几个核心概念这些概念在所有的对象存储服务中也都是通用的。 对象Object 对象是实际的数据单元例如我们上传的一个图片。 存储桶Bucket 存储桶是用于组织对象的命名空间类似于文件夹。每个存储桶可以包含多个对象。 端点Endpoint 端点是MinIO服务器的网络地址用于访问存储桶和对象例如http://192.168.10.101:9000 注意 9000为MinIO的API的默认端口前边配置的9001以为管理页面端口。 Access Key 和 Secret Key Access Key是用于标识和验证访问者身份的唯一标识符相当于用户名。 Secret Key是与Access Key关联的密码用于验证访问者的身份。 2.上传图片到minio当中去 创建一个Maven项目 引入如下依赖 dependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion8.5.3/version /dependency 编写如下内容 public class App {public static void main(String[] args) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {//1.创建 MinioClient对象MinioClient minioClient MinioClient.builder().credentials(minioadmin, minioadmin).endpoint(http://192.168.153.128:9000).build();//2.判断指定名称的桶是否存在boolean flag minioClient.bucketExists(BucketExistsArgs.builder().bucket(b002).build());//3.如果不存在则先创建桶并设置策略if (!flag) {//创建桶minioClient.makeBucket(MakeBucketArgs.builder().bucket(b002).build());//指定策略String policy {Version: 2012-10-17,Statement: [{Effect: Allow,Principal: {AWS: [*]},Action: [s3:GetObject],Resource: [arn:aws:s3:::b002/*]}]};minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(b002).config(policy).build());}// 4.上传图片minioClient.uploadObject(UploadObjectArgs.builder().bucket(b002).object(公寓-健身房.jpg).filename(C:\\Users\\codercui\\Pictures\\7.images\\房间-厨房-2.jpg).build());} }运行测试 运行上述代码然后查看MinIO管理页面观察是否上传成功。 项目当中实现真正的图片上传 1. 图片上传流程 可以看出图片上传接口接收的是图片文件返回的Minio对象的URL。 2. 图片上传接口开发 配置Minio Client 1.引入Minio Maven依赖 在common模块的pom.xml文件增加如下内容 dependencygroupIdio.minio/groupIdartifactIdminio/artifactId /dependency 2.配置Minio相关参数 在application.yml中配置Minio的endpoint、accessKey、secretKey、bucketName等参数 minio:endpoint: http://hostname:portaccess-key: access-keysecret-key: secret-keybucket-name: bucket-name 注意上述hostname、port等信息需根据实际情况进行修改。 3.创建一个minio的配置类 在common模块中创建com.atguigu.lease.common.minio.MinioProperties内容如下 package com.cuihub.lease.common.minio;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties;ConfigurationProperties(prefix minio) Data public class MinioProperties {private String endpoint;private String accessKey;private String secretKey;private String bucketName; } ConfigurationProperties 需要的依赖添加到pom.xml当中去 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependency 4.创建MinioConfiguration 在common模块中创建com.atguigu.lease.common.minio.MinioConfiguration内容如下 package com.cuihub.lease.common.minio;import io.minio.BucketExistsArgs; import io.minio.MakeBucketArgs; import io.minio.MinioClient; import io.minio.SetBucketPolicyArgs; import io.minio.errors.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException;Configuration EnableConfigurationProperties(MinioProperties.class) public class MinioConfiguration {Autowiredprivate MinioProperties minioProperties;Beanpublic MinioClient minioClient() throws ServerException, InsufficientDataException,ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException,InvalidResponseException, XmlParserException, InternalException {MinioClient minioClient MinioClient.builder().endpoint(minioProperties.getEndpoint()).credentials(minioProperties.getAccessKey(), minioProperties.getAccessKey()).build();boolean bucketExistsFlag minioClient.bucketExists(BucketExistsArgs.builder().bucket(minioProperties.getBucketName()).build());if (!bucketExistsFlag){minioClient.makeBucket(MakeBucketArgs.builder().bucket(minioProperties.getBucketName()).build());String policy {Statement : [ {Action : s3:GetObject,Effect : Allow,Principal : *,Resource : arn:aws:s3:::%s/*} ],Version : 2012-10-17}.formatted(minioProperties.getBucketName());minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().config(policy).bucket(minioProperties.getBucketName()).build());}return minioClient;} } 5. 创建一个控制类 package com.cuihub.lease.web.admin.controller.apartment;import com.cuihub.lease.common.result.Result; import com.cuihub.lease.web.admin.service.FileService; import io.minio.MinioClient; import io.minio.PutObjectArgs; import io.minio.errors.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import java.io.IOException; import java.io.StringReader; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException;Tag(name 文件管理) RequestMapping(/admin/file) RestController public class FileUploadController {Autowiredprivate FileService fileService;Operation(summary 上传文件)CrossOriginPostMapping(upload)public ResultString upload(RequestParam MultipartFile file) throws Exception {String url fileService.upload(file); // System.out.println(url url);return Result.ok(url);}}6.创建FileService业务逻辑层 package com.cuihub.lease.web.admin.service;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;public interface FileService { String upload(MultipartFile multipartFile) throws Exception; }7.创建一个j接口实现类imp package com.cuihub.lease.web.admin.service.impl;import com.cuihub.lease.common.minio.MinioProperties; import com.cuihub.lease.web.admin.service.FileService; import io.minio.MinioClient; import io.minio.PutObjectArgs; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID;Service public class FileServiceImpl implements FileService {Autowiredprivate MinioProperties minioProperties;Autowiredprivate MinioClient minioClient;Overridepublic String upload(MultipartFile file) throws Exception {//获取原始文件名String originalFilename file.getOriginalFilename();//创建新的文件名SimpleDateFormat sdf new SimpleDateFormat(yyyyMMdd);originalFilename sdf.format(new Date()) / ( UUID.randomUUID().toString().replaceAll(-, ))_originalFilename;minioClient.putObject(PutObjectArgs.builder().stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).bucket(minioProperties.getBucketName()).object(originalFilename).build());System.out.println(minioProperties.getEndpoint()minioProperties.getBucketName()fashedkjhgft);String url String.format(%s/%s,minioProperties.getEndpoint(),minioProperties.getBucketName())/originalFilename;return url;} }这时候你就可以给前端返回一个图片的url地址啦 注意 1.添加配置文件指定桶名 2.String.format 当中的占位符是%s这里的s是小写如果是大写%S那么返回的地址里面的字母全是大写的了
http://www.hkea.cn/news/14304279/

相关文章:

  • 靖江网站合肥网络推广策划方案
  • 做网站产品搜索展示实现公司宣传册设计与制作公司
  • 关于网站建设的指标龙岗公司的网站制作
  • 口碑好的网站开发公司电话标志设计分析
  • 邯郸网站设计培训班网站关键词优化排名要怎么做
  • 煤炭建设协会官方网站主页制作语言缩写
  • 外网专门做钙片的网站注册网站建设开发
  • 手机网站建设市场报价怎么连接网站的虚拟主机
  • 长春网站长春网络推广建设博客建站系统
  • 自做的网站如何发布网络渠道
  • dedeai网站最新做网站 绑定域名
  • 做淘宝优惠券网站珠宝网站开发的背景
  • 网站优化网站建设dede网站模板客
  • 自己怎么做优惠券网站天津百度搜索网站排名
  • 企业手机网站建设市场分析网站建设期末试卷
  • 什么是网站标题wordpress主题栏
  • 专用车网站建设玉树营销网站建设服务
  • 河北住房建设厅官方网站设计制作简单的手机网站
  • 商业网站建设的方法全国文明城市创建标准
  • 网站移动端优化的重点有哪些微信公众号前端开发教程
  • html5 电商网站布局做个普通网站多少钱
  • 寻找在山西运城专业做网站推广的免费咨询图片
  • 网站备案怎么才能快速死链对网站的影响
  • 普陀网站建设网站的模块
  • 贵阳做网站哪家好天元建设集团有限公司单位代码
  • 企业网站欣赏郑州企业形象设计电商网站建设服务
  • 深圳手机商城网站设计费用浏览国外服务器的网站
  • 网站建设选青岛的公司好不好dede网站优化
  • 怎样做免费网站会员企业网站的价值体现是在
  • 微网站管理o2o网站开发价格