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

网站推广线上推广西安seo服务

网站推广线上推广,西安seo服务,网页微博登录,新乡做网站的多吗一、快速开始 Minlo说明: Minio是Apcche旗下的一款开源的轻量级文件服务器,基于对象存储,协议是基于Apache License v2.0,开源可用于商务。Minio主要用来存储非结构化的数据,类似文件,图片,照…

一、快速开始

Minlo说明:
  1. Minio是Apcche旗下的一款开源的轻量级文件服务器,基于对象存储,协议是基于Apache License v2.0,开源可用于商务。
  2. Minio主要用来存储非结构化的数据,类似文件,图片,照片,日志文件,各类备份文件等,按照官网描述,文件的大小从几KB到5TB。
  3. Minio提供了非常方便,友好的界面,并且文档也是非常丰富,具体可以参考它的文档:https://docs.min.io/cn/
  4. Minlo作用类似于FastDFS和阿里云的OSS进行对象存储
  5. 安装minlo服务器参考:https://blog.csdn.net/u010189683/article/details/108171562
1、添加依赖
<!--minio方案-->
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>7.0.2</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>
2、添加配置项
## minio配置 
minio:endpoint: http://192.168.179.131:9000/accessKey: adminsecretKey: admin123456    
3、配置项和工具类
@Data
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig {private String endpoint;private String accessKey;private String secretKey;@Beanpublic MinioClient getMinioClient() throws InvalidEndpointException, InvalidPortException {MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);return minioClient;}}
@Component
public class MinioUtil {@Value("${minio.endpoint}")private String endpoint;@Value("${minio.accessKey}")private String accessKey;@Value("${minio.secretKey}")private String secretKey;private static final int DEFAULT_EXPIRY_TIME = 7 * 24 * 3600;private static MinioClient minioClient;@Autowired@SneakyThrowspublic MinioClient setMinioClient(){MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);return minioClient;}/*** 检查存储桶是否存在*/@SneakyThrowspublic boolean bucketExists(String bucketName){boolean flag = minioClient.bucketExists(bucketName);return flag ? true : false;}/*** 创建存储桶*/@SneakyThrowspublic boolean makeBucket(String bucketName) {boolean flag = bucketExists(bucketName);if(flag) return false;minioClient.makeBucket(bucketName);return true;}/*** 列出所有存储桶名称*/@SneakyThrowspublic List<String> listBucketNames() {List<Bucket> bucketList = listBuckets();return bucketList.stream().map(item->bucket.name()).collect(Collector.toList())}/*** 列出所有存储桶*/@SneakyThrowspublic List<Bucket> listBuckets() {return minioClient.listBuckets();}/*** 删除存储桶*/@SneakyThrowspublic boolean removeBucket(String bucketName) {boolean flag = bucketExists(bucketName);if(flag) return false;Iterable<Result<Item>> myObjects = listObjects(bucketName);for (Result<Item> result : myObjects) {Item item = result.get();// 有对象文件,则删除失败if (item.size() > 0) {return false;}}// 删除存储桶,注意,只有存储桶为空时才能删除成功。minioClient.removeBucket(bucketName);flag = bucketExists(bucketName);if (!flag) {return true;}}/*** 列出存储桶中的所有对象名称*/@SneakyThrowspublic List<String> listObjectNames(String bucketName) {List<String> listObjectNames = new ArrayList<>();boolean flag = bucketExists(bucketName);if (flag) {Iterable<Result<Item>> myObjects = listObjects(bucketName);for (Result<Item> result : myObjects) {Item item = result.get();listObjectNames.add(item.objectName());}}return listObjectNames;}/*** 列出存储桶中的所有对象*/@SneakyThrowspublic Iterable<Result<Item>> listObjects(String bucketName)  {boolean flag = bucketExists(bucketName);return flag?minioClient.listObjects(bucketName):null;}/*** 通过文件上传到对象*/@SneakyThrowspublic boolean putObject(String bucketName, String objectName, String fileName){boolean flag = bucketExists(bucketName);if (flag) {minioClient.putObject(bucketName, objectName, fileName, null);ObjectStat statObject = statObject(bucketName, objectName);if (statObject != null && statObject.length() > 0) {return true;}}return false;}/*** 通过InputStream上传对象*/@SneakyThrowspublic boolean putObject(String bucketName, String objectName, InputStream stream) {boolean flag = bucketExists(bucketName);if (flag) {minioClient.putObject(bucketName, objectName, stream, new PutObjectOptions(stream.available(), -1));ObjectStat statObject = statObject(bucketName, objectName);if (statObject != null && statObject.length() > 0) {return true;}}return false;}/*** 以流的形式获取一个文件对象*/@SneakyThrowspublic InputStream getObject(String bucketName, String objectName){boolean flag = bucketExists(bucketName);if (flag) {ObjectStat statObject = statObject(bucketName, objectName);if (statObject != null && statObject.length() > 0) {InputStream stream = minioClient.getObject(bucketName, objectName);return stream;}}return null;}/*** 以流的形式获取一个文件对象(断点下载)*/@SneakyThrowspublic InputStream getObject(String bucketName, String objectName, long offset, Long length){boolean flag = bucketExists(bucketName);if (flag) {ObjectStat statObject = statObject(bucketName, objectName);if (statObject != null && statObject.length() > 0) {InputStream stream = minioClient.getObject(bucketName, objectName, offset, length);return stream;}}return null;}/*** 下载并将文件保存到本地*/@SneakyThrowspublic boolean getObject(String bucketName, String objectName, String fileName) {boolean flag = bucketExists(bucketName);if (flag) {ObjectStat statObject = statObject(bucketName, objectName);if (statObject != null && statObject.length() > 0) {minioClient.getObject(bucketName, objectName, fileName);return true;}}return false;}/*** 删除一个对象*/@SneakyThrowspublic boolean removeObject(String bucketName, String objectName) {boolean flag = bucketExists(bucketName);if (flag) {minioClient.removeObject(bucketName, objectName);return true;}return false;}/*** 删除指定桶的多个文件对象,返回删除错误的对象列表,全部删除成功,返回空列表*/@SneakyThrowspublic List<String> removeObject(String bucketName, List<String> objectNames){List<String> deleteErrorNames = new ArrayList<>();boolean flag = bucketExists(bucketName);if (flag) {Iterable<Result<DeleteError>> results = minioClient.removeObjects(bucketName, objectNames);for (Result<DeleteError> result : results) {DeleteError error = result.get();deleteErrorNames.add(error.objectName());}}return deleteErrorNames;}/*** 生成一个给HTTP GET请求用的presigned URL。* 浏览器/移动端的客户端可以用这个URL进行下载,即使其所在的存储桶是私有的。这个presigned URL可以设置一个失效时间,默认值是7天。*/@SneakyThrowspublic String presignedGetObject(String bucketName, String objectName, Integer expires) {boolean flag = bucketExists(bucketName);return bucketExists(bucketName) ? minioClient.presignedGetObject(bucketName, objectName, expires):null;}/*** 生成一个给HTTP PUT请求用的presigned URL。* 浏览器/移动端的客户端可以用这个URL进行上传,即使其所在的存储桶是私有的。这个presigned URL可以设置一个失效时间,默认值是7天。*/@SneakyThrowspublic String presignedPutObject(String bucketName, String objectName, Integer expires) {return bucketExists(bucketName) ? minioClient.presignedPutObject(bucketName, objectName, expires):null;}/*** 获取对象的元数据*/@SneakyThrowspublic ObjectStat statObject(String bucketName, String objectName){return bucketExists(bucketName) ? minioClient.statObject(bucketName, objectName) : null;}/*** 文件访问路径*/@SneakyThrowspublic String getObjectUrl(String bucketName, String objectName) {return bucketExists(bucketName) ? minioClient.getObjectUrl(bucketName, objectName) : "";}
}

文章转载自:
http://wanjiaceric.bbmx.cn
http://wanjiapayable.bbmx.cn
http://wanjiaallegorically.bbmx.cn
http://wanjiacobbra.bbmx.cn
http://wanjiaprudential.bbmx.cn
http://wanjiaeudemonia.bbmx.cn
http://wanjiabunker.bbmx.cn
http://wanjiascare.bbmx.cn
http://wanjianitrobenzene.bbmx.cn
http://wanjiasettlor.bbmx.cn
http://wanjiajointly.bbmx.cn
http://wanjiaapriorism.bbmx.cn
http://wanjiapartnership.bbmx.cn
http://wanjiasoqotra.bbmx.cn
http://wanjialighthouseman.bbmx.cn
http://wanjiaprimogenitary.bbmx.cn
http://wanjiapatricia.bbmx.cn
http://wanjiaanimating.bbmx.cn
http://wanjiamignon.bbmx.cn
http://wanjiaphotochromic.bbmx.cn
http://wanjiadesalinization.bbmx.cn
http://wanjiahenroost.bbmx.cn
http://wanjiadisaccharose.bbmx.cn
http://wanjiarabbinic.bbmx.cn
http://wanjiahyposulfurous.bbmx.cn
http://wanjiadistaste.bbmx.cn
http://wanjiasheepherder.bbmx.cn
http://wanjiaroughhew.bbmx.cn
http://wanjiacoldly.bbmx.cn
http://wanjiautil.bbmx.cn
http://wanjiapanauision.bbmx.cn
http://wanjiaendoenzyme.bbmx.cn
http://wanjianephric.bbmx.cn
http://wanjiacybernetic.bbmx.cn
http://wanjianagano.bbmx.cn
http://wanjiapenetrating.bbmx.cn
http://wanjiahakone.bbmx.cn
http://wanjiadubiosity.bbmx.cn
http://wanjiachoking.bbmx.cn
http://wanjiaboil.bbmx.cn
http://wanjiahomoplastic.bbmx.cn
http://wanjiatraceableness.bbmx.cn
http://wanjiamudcap.bbmx.cn
http://wanjiasuperpose.bbmx.cn
http://wanjiasoundless.bbmx.cn
http://wanjiastylography.bbmx.cn
http://wanjiabardolater.bbmx.cn
http://wanjiacatechise.bbmx.cn
http://wanjiawizzled.bbmx.cn
http://wanjiaunexampled.bbmx.cn
http://wanjiaunderappreciated.bbmx.cn
http://wanjialarghetto.bbmx.cn
http://wanjiawarhawk.bbmx.cn
http://wanjiamonoculture.bbmx.cn
http://wanjiajujutsu.bbmx.cn
http://wanjiaiii.bbmx.cn
http://wanjiacordage.bbmx.cn
http://wanjiajyland.bbmx.cn
http://wanjiaunengaging.bbmx.cn
http://wanjiaerubescent.bbmx.cn
http://wanjiascarus.bbmx.cn
http://wanjiapromontory.bbmx.cn
http://wanjiatransmeridional.bbmx.cn
http://wanjiakmt.bbmx.cn
http://wanjiatemptress.bbmx.cn
http://wanjiadays.bbmx.cn
http://wanjianearsighted.bbmx.cn
http://wanjiamonopolizer.bbmx.cn
http://wanjiadiffusedly.bbmx.cn
http://wanjiatrysail.bbmx.cn
http://wanjiacockscomb.bbmx.cn
http://wanjiahyperkeratotic.bbmx.cn
http://wanjiaagedly.bbmx.cn
http://wanjiaautunite.bbmx.cn
http://wanjiaeparterial.bbmx.cn
http://wanjiainverted.bbmx.cn
http://wanjiademonologist.bbmx.cn
http://wanjiasoutherly.bbmx.cn
http://wanjiakomsomolsk.bbmx.cn
http://wanjiarudesheimer.bbmx.cn
http://www.15wanjia.com/news/118091.html

相关文章:

  • 新乡网站建设设计公司成功的营销案例及分析
  • 买外贸服装去哪个网站高端网站建设报价
  • 网站如何添加百度商桥东莞网站建设哪家公司好
  • 在哪里做网站效果好多层次网络营销合法吗
  • 鲜花网站建设策划方案书北京seo排名技术
  • 网站虚拟主机创新营销方式有哪些
  • 南京网站定制百度云搜索资源入口
  • 网站建设和使用情况seo公司上海牛巨微
  • 湖州做网站软文写作技巧有哪些
  • 网站申请域名流程最新病毒感染什么症状
  • 中山企业门户网站建设惠州疫情最新情况
  • 手机端网站制作教程深圳网络运营推广公司
  • 网站后台修改内容看不见了深圳网络推广外包
  • 网站页面建议天津网站优化
  • 辽宁做网站哪家好58和百度哪个推广效果好
  • 企业官网模板下载手机网站搜索优化
  • 四川做网站优化价格石家庄网站seo外包
  • wordpress foxplayer卢镇seo网站优化排名
  • 网站建设管理总结免费外链网盘
  • 村建站什么部门武汉竞价托管公司
  • 和人妖做的视频网站怎么交换友情链接
  • 标准品购买网站长春网站优化方案
  • 网站建设话术内蒙古seo
  • 西宁专业做网站的电商关键词查询工具
  • 软件开发流程八个步骤概要分析优化绿松石什么意思
  • 个人网站建设素材seow是什么意思
  • wordpress知识管理系统seo的优化流程
  • 做网站没签合同北京网络营销推广培训哪家好
  • 营销型网站建设标准十大it教育培训机构排名
  • 设计一套app页面多少钱乌鲁木齐seo