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

No酒店网站建设网络营销是什么?

No酒店网站建设,网络营销是什么?,外国做的福利小视频在线观看网站,附近标书制作公司OSS 「OSS」的英文全称是Object Storage Service#xff0c;翻译成中文就是「对象存储服务」#xff0c;官方一点解释就是对象存储是一种使用HTTP API存储和检索非结构化数据和元数据对象的工具。 白话文解释就是将系统所要用的文件上传到云硬盘上#xff0c;该云硬盘提供了…OSS 「OSS」的英文全称是Object Storage Service翻译成中文就是「对象存储服务」官方一点解释就是对象存储是一种使用HTTP API存储和检索非结构化数据和元数据对象的工具。 白话文解释就是将系统所要用的文件上传到云硬盘上该云硬盘提供了文件下载、上传等一列服务这样的服务以及技术可以统称为OSS业内提供OSS服务的厂商很多知名常用且成规模的七牛云等。一般我们做网站还是服务都希望将文件放在一个指定的服务器,并且更好的管理,并且动静分离更好的提升软件性能我之间写过如何springboot整合七牛云,感兴趣的可以了解一下,但是由于七牛云需要自己购买他的服务器,对于学生做项目不友好,所以今天介绍的是开源可以自己搭建的oss服务 Minio 介绍: MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。 它是与 Amazon S3 云存储服务兼容的 API。 使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。Minio官网 搭建DOCKER docker的好处不用多说了,最主要的是服务的安装与卸载很方便,这里也提供docker的学习笔记,那么现在开始搭建 拉取镜像 使用之间可以先查看下各个版本 docker search minio一般选择star最多的版本 docker pull minion在虚拟机或者云服务创建一个文件夹,并且包含一个数据,一个配置文件目录做挂载 运行 docker run -p 9001:9000 -p 9090:9090 --nethost --name minio -d --restartalways -e MINIO_ACCESS_KEYminioadmin -e MINIO_SECRET_KEYminioadmin -v /home/hadoop/minio/data:/data -v /home/hadoop/minio/config:/root/.minio minio/minio server /data --console-address :9091 -address :9001访问虚拟机ip:服务端口 账号密码是配置文件中指定的 MINIO_ACCESS_KEYminioadminMINIO_SECRET_KEYminioadmin 对象储存服务中,数据是按照bucket 桶来的,所以先新建一个桶 java测试上传文件 TestDisplayName(测试minio上传下载)public void testMn() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {client MinioClient.builder().credentials(minioadmin, minioadmin).endpoint(http://192.168.249.132:9001).build();FileInputStream inputStream;PutObjectArgs putObjectArgs; // 读取文件转换为输入流inputStream new FileInputStream(D:\\list.html);// 上传一个对象 需要使用聚合对象包装在里面()putObjectArgs PutObjectArgs.builder().object(list.html)//文件名.contentType(text/html)//文件类型.bucket(leadnews)//区域名.stream(inputStream, inputStream.available(), -1).build();//转换为流进行传输client.putObject(putObjectArgs);}这样就可以实现上传了,现在进行封装, 便于使用 建立配置属性类便于动态注入数据 Data ConfigurationProperties(prefix minio) // 文件上传 配置前缀file.oss public class MinIOConfigProperties implements Serializable {private String accessKey;private String secretKey;private String bucket;private String endpoint;private String readPath; }配置文件 minio:accessKey: minioadminsecretKey: minioadminbucket: leadnewsendpoint: http://192.168.249.132:9001readPath: http://192.168.249.132:9001注入配置类实列化 Data Configuration EnableConfigurationProperties({MinIOConfigProperties.class}) //当引入FileStorageService接口时 ConditionalOnClass(FileStorageService.class) public class MinIOConfig {Autowiredprivate MinIOConfigProperties minIOConfigProperties;Beanpublic MinioClient buildMinioClient() {return MinioClient.builder().credentials(minIOConfigProperties.getAccessKey(), minIOConfigProperties.getSecretKey()).endpoint(minIOConfigProperties.getEndpoint()).build();} }文件处理接口 public interface FileStorageService {/*** 上传图片文件* param prefix 文件前缀* param filename 文件名* param inputStream 文件流* return 文件全路径*/public String uploadImgFile(String prefix, String filename,InputStream inputStream);/*** 上传html文件* param prefix 文件前缀* param filename 文件名* param inputStream 文件流* return 文件全路径*/public String uploadHtmlFile(String prefix, String filename,InputStream inputStream);/*** 删除文件* param pathUrl 文件全路径*/public void delete(String pathUrl);/*** 下载文件* param pathUrl 文件全路径* return**/public byte[] downLoadFile(String pathUrl);} imp Slf4j EnableConfigurationProperties(MinIOConfigProperties.class) Import(MinIOConfig.class) public class MinIOFileStorageService implements FileStorageService {Autowiredprivate MinioClient minioClient;Autowiredprivate MinIOConfigProperties minIOConfigProperties;private final static String separator /;/*** param dirPath* param filename yyyy/mm/dd/file.jpg* return*/public String builderFilePath(String dirPath,String filename) {StringBuilder stringBuilder new StringBuilder(50);if(!StringUtils.isEmpty(dirPath)){stringBuilder.append(dirPath).append(separator);}SimpleDateFormat sdf new SimpleDateFormat(yyyy/MM/dd);String todayStr sdf.format(new Date());stringBuilder.append(todayStr).append(separator);stringBuilder.append(filename);return stringBuilder.toString();}/*** 上传图片文件* param prefix 文件前缀* param filename 文件名* param inputStream 文件流* return 文件全路径*/Overridepublic String uploadImgFile(String prefix, String filename,InputStream inputStream) {String filePath builderFilePath(prefix, filename);try {PutObjectArgs putObjectArgs PutObjectArgs.builder().object(filePath).contentType(image/jpg).bucket(minIOConfigProperties.getBucket()).stream(inputStream,inputStream.available(),-1).build();minioClient.putObject(putObjectArgs);StringBuilder urlPath new StringBuilder(minIOConfigProperties.getReadPath());urlPath.append(separatorminIOConfigProperties.getBucket());urlPath.append(separator);urlPath.append(filePath);return urlPath.toString();}catch (Exception ex){log.error(minio put file error.,ex);throw new RuntimeException(上传文件失败);}}/*** 上传html文件* param prefix 文件前缀* param filename 文件名* param inputStream 文件流* return 文件全路径*/Overridepublic String uploadHtmlFile(String prefix, String filename,InputStream inputStream) {String filePath builderFilePath(prefix, filename);try {PutObjectArgs putObjectArgs PutObjectArgs.builder().object(filePath).contentType(text/html).bucket(minIOConfigProperties.getBucket()).stream(inputStream,inputStream.available(),-1).build();minioClient.putObject(putObjectArgs);StringBuilder urlPath new StringBuilder(minIOConfigProperties.getReadPath());urlPath.append(separatorminIOConfigProperties.getBucket());urlPath.append(separator);urlPath.append(filePath);return urlPath.toString();}catch (Exception ex){log.error(minio put file error.,ex);ex.printStackTrace();throw new RuntimeException(上传文件失败);}}/*** 删除文件* param pathUrl 文件全路径*/Overridepublic void delete(String pathUrl) {String key pathUrl.replace(minIOConfigProperties.getEndpoint()/,);int index key.indexOf(separator);String bucket key.substring(0,index);String filePath key.substring(index1);// 删除ObjectsRemoveObjectArgs removeObjectArgs RemoveObjectArgs.builder().bucket(bucket).object(filePath).build();try {minioClient.removeObject(removeObjectArgs);} catch (Exception e) {log.error(minio remove file error. pathUrl:{},pathUrl);e.printStackTrace();}}/*** 下载文件* param pathUrl 文件全路径* return 文件流**/Overridepublic byte[] downLoadFile(String pathUrl) {String key pathUrl.replace(minIOConfigProperties.getEndpoint()/,);int index key.indexOf(separator);String bucket key.substring(0,index);String filePath key.substring(index1);InputStream inputStream null;try {inputStream minioClient.getObject(GetObjectArgs.builder().bucket(minIOConfigProperties.getBucket()).object(filePath).build());} catch (Exception e) {log.error(minio down file error. pathUrl:{},pathUrl);e.printStackTrace();}ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();byte[] buff new byte[100];int rc 0;while (true) {try {if (!((rc inputStream.read(buff, 0, 100)) 0)) break;} catch (IOException e) {e.printStackTrace();}byteArrayOutputStream.write(buff, 0, rc);}return byteArrayOutputStream.toByteArray();} } 封装为模块 如果是springcloud分布式业务,文件处理可以封装为模块给其他模块使用 新建模块 modulesmoduleheima-leadnews-basic/module modulesmoduleheima-file-starter/module/modules/modules在项目新建模块,依赖如上配置yaml文件不写,因为是做成模块给其他模块使用的 在该模块的resource目录新建meta-inf元数据配置文件 内容 org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.heima.file.service.impl.MinIOFileStorageService这个配置的作用是为了将一个模块或库的功能引入到应用程序中以便在应用程序的其他部分中可以使用这个模块提供的功能。这个模块可能包含一些服务、组件或类你可以使用Autowired等注解来注入它们以便在应用程序中使用。 通常情况下如果你没有一个显式的启动类Spring Boot应用的入口类或者你不想将这个模块的功能包含在应用程序的启动类中你可以使用这种方式通过spring.factories配置来自动启用这个模块。 这个模块的配置会在应用程序启动时被Spring Boot自动加载和初始化从而使你可以在应用程序中使用它提供的功能而不需要手动实例化或配置相关的Bean。这种方式可以使应用程序的模块化更好遵循了依赖注入和解耦的原则。 在需要使用的模块导入该模块即可
http://www.pierceye.com/news/93465/

相关文章:

  • 网站开发框架 Wordpress网站整体设计流程
  • 深圳沙井网站建设网站建设管理工作
  • 网站广告条效果wordpress改关键词
  • 做移动网站首页软截获网站流量怎么做
  • 用dw做网站怎么添加背景图片大连网页制作培训
  • 新网站百度有审核期成都 网站建设培训班
  • 在线购物网站的设计成都网站seo费用
  • 访问国外的网站很慢wordpress 电商主题
  • 免费收录网站推广wordpress打开速度分析
  • 成都网站运营wordpress后台
  • 班级建设网站wordpress获取分类的文章
  • 北京建设官方网站常州做网站那家快
  • 网站建设源码包射阳网页设计
  • 做企业网站备案都需要什么织梦 安装网站
  • 查询网站收录命令用wordPress搭建图片库
  • 网站开发的验收标准给几个网址谢谢
  • 手表网站大全网络推广竞价
  • 中创高科官方网站wordpress 页面添加js
  • 平台网站怎么做专业网站设计公司排名
  • 网站开发公司 重庆百度seo标题优化软件
  • wordpress 导入主题网站建设优化广告流量
  • 网店装修网站房屋装修设计费一般多少
  • 微信公众平台制作网站设计网站页面要怎么切图
  • 个人网站 备案 类型小红书笔记推广
  • 门户网站怎么创建网页制作步骤php
  • 六师五家渠市建设局网站wordpress 定时发布插件
  • 深圳外贸网站外贸网站建设安阳网站建设服务
  • wdcp 网站建设做民宿推广都有哪些网站
  • 常见的网站开发环境网站建设的结构
  • 贵阳网站推广优化公司做网站的公司搞什么活动