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

五金配件店 东莞网站建设企业用什么做网站

五金配件店 东莞网站建设,企业用什么做网站,敦煌网站销售员怎么做,如何建立一个网站支持chrome官网#xff1a; MinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储。它采用 GNU AGPL v3 开源协议#xff0c;项目地址是 https://github.com/minio/minio 。 它适合存储海量的非结构化的数据#xff0c;例如说图片、音频、视频等常见文件#xff0c;备份数据、…官网 MinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储。它采用 GNU AGPL v3 开源协议项目地址是 https://github.com/minio/minio 。 它适合存储海量的非结构化的数据例如说图片、音频、视频等常见文件备份数据、容器、虚拟机镜像等等小到 1 KB大到 5 TB 都可以支持。 添加依赖 propertiesjava.version1.8/java.versionminio.version8.4.3/minio.version /propertiesdependenciesdependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion${minio.version}/version/dependency /dependenciesMinio 配置类 import io.minio.MinioClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class MinioConfig {Value(${minio.url})private String url;Value(${minio.access-key})private String accessKey;Value(${minio.secret-key})private String secretKey;Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();} }application.yml 配置文件 minio:url: http://127.0.0.1:9000accessKey: 45wsHpkAIWfhghSs11XsecretKey: D9fghfg6sahgufghfgdOYrwqHqocfgh2njhfghMinioTemplate.java 封装方法 封装常用的上传多文件上传、单文件上传、获取链接、删除、下载方法方便使用。 import com.ufan.mall.model.FileVo; import io.minio.*; import io.minio.http.Method; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile;import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit;/*** ClassNameMinioTemplate.java* DescriptionMinioTemplate* Authortanyp* Date2023/07/27 15:49**/ Slf4j Component public class MinioTemplate {Autowiredprivate MinioClient client;/*** MonthNameupload* Description 上传文件* Authortanyp* Date2023/07/27 15:52* Param [file, bucketName]* returnvoid**/public FileVo upload(MultipartFile file, String bucketName) {try {createBucket(bucketName);String oldName file.getOriginalFilename();String fileName LocalDate.now().format(DateTimeFormatter.ofPattern(yyyyMMdd)) UuidUtil.getRandomPwd(15) oldName.substring(oldName.lastIndexOf(.));client.putObject(PutObjectArgs.builder().bucket(bucketName).object(fileName).stream(file.getInputStream(), file.getSize(), 0).contentType(file.getContentType()).build());String url this.getObjUrl(bucketName, fileName);return FileVo.builder().oldFileName(oldName).newFileName(fileName).fileUrl(url.substring(0, url.indexOf(?))).build();} catch (Exception e) {log.error(上传文件出错:{}, e);return null;}}/*** MonthNameuploads* Description 上传多个文件* Authortanyp* Date2023/07/27 15:52* Param [file, bucketName]* returnvoid**/public ListFileVo uploads(ListMultipartFile files, String bucketName) {try {ListFileVo list new ArrayList();createBucket(bucketName);for (MultipartFile file : files) {String oldName file.getOriginalFilename();String fileName LocalDate.now().format(DateTimeFormatter.ofPattern(yyyyMMdd)) UuidUtil.getRandomPwd(15) oldName.substring(oldName.lastIndexOf(.));client.putObject(PutObjectArgs.builder().bucket(bucketName).object(fileName).stream(file.getInputStream(), file.getSize(), 0).contentType(file.getContentType()).build());String url this.getObjUrl(bucketName, fileName);list.add(FileVo.builder().oldFileName(oldName).newFileName(fileName).fileUrl(url.substring(0, url.indexOf(?))).build());}return list;} catch (Exception e) {log.error(上传文件出错:{}, e);return null;}}/*** MonthNamedownload* Description 下载文件* Authortanyp* Date2023/07/27 15:54* Param [bucketName, fileName]* returnvoid**/public void download(String bucketName, String fileName) throws Exception {client.downloadObject(DownloadObjectArgs.builder().bucket(bucketName).filename(fileName).build());}/*** MonthNamegetObjUrl* Description 获取文件链接* Authortanyp* Date2023/07/27 15:55* Param [bucketName, fileName]* returnjava.lang.String**/public String getObjUrl(String bucketName, String fileName) throws Exception {return client.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(bucketName).object(fileName).method(Method.GET).expiry(30, TimeUnit.SECONDS).build());}/*** MonthNamedelete* Description 删除文件* Authortanyp* Date2023/5/26 15:56* Param [bucketName, fileName]* returnvoid**/public void delete(String bucketName, String fileName) throws Exception {client.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(fileName).build());}SneakyThrowspublic void createBucket(String bucketName) {if (!client.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {client.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());String sb {\Version\: \2012-10-17\,\Statement\: [{\Effect\: \Allow\,\Principal\: {\AWS\: [\*\]},\Action\: [\s3:GetBucketLocation\],\Resource\: [\arn:aws:s3::: bucketName \]},{\Effect\: \Allow\,\Principal\: {\AWS\: [\*\]},\Action\: [\s3:ListBucket\],\Resource\: [\arn:aws:s3::: bucketName \],\Condition\: {\StringEquals\: {\s3:prefix\: [\*\]}}},{\Effect\: \Allow\,\Principal\: {\AWS\: [\*\]},\Action\: [\s3:GetObject\],\Resource\: [\arn:aws:s3::: bucketName /**\]}]};client.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(sb).build());}}}FileVo.java 实体类 import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor;Data Builder AllArgsConstructor NoArgsConstructor public class FileVo {/*** 原文件名*/private String oldFileName;/*** 新文件名*/private String newFileName;/*** 文件路径*/private String fileUrl;}动态创建 Bucket 如何设置桶的权限 在MinIO中可以通过设置桶策略来控制桶的访问权限。桶策略是一个JSON格式的文本文件用于指定哪些实体用户、组或IP地址可以执行哪些操作读、写、列举等。 MinIO桶策略的基本结构如下所示 {Version: 2012-10-17,Statement: [{Action: [action1, action2, ...],Effect: Allow|Deny,Principal: {AWS: [arn:aws:iam::account-id:user/user-name]},Resource: [arn:aws:s3:::bucket-name/object-prefix, ...]},...] }
http://www.hkea.cn/news/14545919/

相关文章:

  • 深圳建设集团网站宁波建设工程学校网站
  • 网站首页页面设计多少钱有域名了怎么建站
  • 网站建设方案哪家好 推荐seoul是啥意思
  • 上海做网站公个人博客建站wordpress
  • 网站界面设计实训总结网络推广培训一对一
  • 网站建设与架构男友实验漯河市建设监理协会网站
  • 创建网站要多长时间宁波信息港
  • 网站建设都有什么功能一个静态网站开发考虑什么
  • 山西住房和建设厅网站免费发布信息的软件
  • 诸暨做网站国家高新技术企业认定工作网
  • 移动网站开发与维护必应网站首页的图片怎么做的
  • 干净简约的网站wordpress 一级目录下
  • 网站建设是固定资产还是列费用网络架构需求
  • 广州网站建设信息科技有限公司最新新闻热点事件短篇
  • php网站怎么建设廉政建设网评文章网站
  • 佛山建站公司哪家好自己有个服务器 怎样做网站
  • 甘肃省建设工程安质局网站不付费免费网站
  • 义乌企业网站网页制作课程
  • 重庆网站推seo的优化原理
  • 廊坊开发网站公司安徽seo推广公司
  • 网站建设前期策划方案深圳遗像制作
  • 网站友情链接自动上链wordpress网站如何添加栏目
  • 公司网站制作招聘昆明网站建设 昆明光硕
  • 医疗器械做网站到哪里先备案厦门网站关键词推广
  • 网站开发前景好吗重庆市工程建设交易中心网站
  • 网站空间域名免费秦皇岛北京网站建设
  • 个人购物网站 怎么建wordpress企业新闻
  • 学校招聘教师网站建设贵阳百度推广电话
  • 海南医院网站建设重庆专业网站推广费用
  • 没有网站怎么做百度推广通辽市北京网站建设