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

阿里云 建设网站化妆品软文推广范文

阿里云 建设网站,化妆品软文推广范文,淄博网站推广那家好,做网站建设的好处1 MinIO核心概念 下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。 对象(Object) 对象是实际的数据单元,例如我们上传的一个图片。 存储桶(Bucket) 存储桶是用于组织对象的命…

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当中去

  1. 创建一个Maven项目

  2. 引入如下依赖

    <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.3</version>
    </dependency>
  3. 编写如下内容

    
    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());}
    }
    

  4. 运行测试

    运行上述代码,然后查看MinIO管理页面,观察是否上传成功。

项目当中实现真正的图片上传

1. 图片上传流程

可以看出图片上传接口接收的是图片文件,返回的Minio对象的URL。

2. 图片上传接口开发

        配置Minio Client

1.引入Minio Maven依赖

  • common模块pom.xml文件增加如下内容:

    <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId>
    </dependency>

2.配置Minio相关参数

application.yml中配置Minio的endpointaccessKeysecretKeybucketName等参数

minio:endpoint: http://<hostname>:<port>access-key: <access-key>secret-key: <secret-key>bucket-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当中去

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</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 = "上传文件")@CrossOrigin@PostMapping("upload")public Result<String> 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.yidumall.com/news/88109.html

    相关文章:

  • 网站系统繁忙怎么办成都网络优化托管公司
  • 网站建设洪塔目前好的推广平台
  • 潍坊哪里能找到做网站的windows优化大师免费
  • 青海政府网站建设公司东莞seo建站公司哪家好
  • wordpress插件数量seo顾问收费
  • 网站建设客源开发友情链接怎么弄
  • 网页制作网站源码seo关键词智能排名
  • 个人站长怎么做企业网站营销策略怎么写范文
  • laravel 做网站百度推广官方投诉电话
  • 网站免备案环球军事网最新消息
  • 天津大型网站设计公司电脑培训中心
  • 用dw设计网站模板下载地址seo优化排名价格
  • 宁波怎么建网站模板营销型网站建设的主要流程包括
  • 织梦网站怎么做下载地址衡阳网站优化公司
  • 工程承包网站有哪些在线代理浏览网站免费
  • 北京建设协会网站网站运营公司
  • l礼品文化网站建设上海网络营销上海网络推广
  • 唐山房产网站建设石家庄关键词优化平台
  • 泗洪有做网站怎么在百度上发布广告
  • 如何做淘宝网网站域名google关键词优化
  • 哈尔滨网站制作费用爱站工具包官网下载
  • 网站开发要先买服务器吗今日疫情最新数据
  • 工程 建筑 公司 取名 参考抚顺优化seo
  • 电子商务网站开发这书不出版了吗模板建站公司
  • 公众号后端框架佛山seo关键词排名
  • 国外 做励志视频的网站关键词排名优化提升培训
  • wordpress 修改文章发布的世界长沙seo推广外包
  • vs设置网站开发环境网盘资源免费观看
  • 宽带固定ip的怎么做网站服务器营销培训总结
  • 最好的网站建设哪家好百度主页面