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

北京网站建设公司现状企业seo的措施有哪些

北京网站建设公司现状,企业seo的措施有哪些,南昌做网站电话,腾讯云 云服务器官网阿里云对象存储 1、创建阿里云对象存储节点2、上传文件2.1 修改项目配置文件2.2 定义一个Properties类获取配置信息2.3 准备一个alioss工具类2.4 创建注册类,将AliOssUtil 注册成Bean2.5 使用AliOssUtil 工具类上传文件2.6 注意事项 使用阿里云对象存储服务分为以下…

阿里云对象存储

  • 1、创建阿里云对象存储节点
  • 2、上传文件
    • 2.1 修改项目配置文件
    • 2.2 定义一个Properties类获取配置信息
    • 2.3 准备一个alioss工具类
    • 2.4 创建注册类,将AliOssUtil 注册成Bean
    • 2.5 使用AliOssUtil 工具类上传文件
    • 2.6 注意事项

使用阿里云对象存储服务分为以下几步:

1、创建阿里云对象存储节点

首先需要创建阿里云对象存储节点。获取endpoint、accessKeyId、accessKeySecret、bucketName四个信息。

  1. 进入阿里云官网,并注册登录。
  2. 鼠标悬放在产品上,然后悬放到存储上,然后点击对象存储OSS。
    在这里插入图片描述
  3. 点击管理控制台。进入对象存储OSS管理控制台。
    在这里插入图片描述
  4. 创建Bucket。如果是第一次使用对象存储OSS服务,则首先需要开通服务。开通后点击左上角Bucket列表;点击创建Bucket;修改Bucket名称;点击完成创建。注意复制Endpoint信息。
    在这里插入图片描述
    在这里插入图片描述
  5. 获取AccessKey ID和 AccessKey Secret。保存好AccessKey ID和 AccessKey Secret。
    在这里插入图片描述
  6. 记录需要的四个信息。
    endpoint:在创建Bucket时选择地域,下面会有对应的Endpoint。
    bucketName:创建Bucket时自定义。
    AccessKey ID和 AccessKey Secret:加密获取。

2、上传文件

2.1 修改项目配置文件

在项目配置文件中定义endpoint、accessKeyId、accessKeySecret、bucketName四个信息。这里使用的是yaml格式配置文件。

web:alioss:access-key-id: ---access-key-secret: ---bucket-name: ---endpoint: ---

在这里插入图片描述

2.2 定义一个Properties类获取配置信息

可以新建一个properties包,专门存放用于获取配置信息相关的类。
这里创建一个AliOssProperties类,用于保存与阿里云对象存储OSS服务相关的四个信息。
需要在该类上增加几个注解:

  • @Component:将该类注册成Bean;
  • @ConfigurationProperties:给prefix 属性赋值对应的配置文件信息。这里是"web.alioss"。该注解的作用是从配置文件获取配置信息,并将配置信息赋值非成员变量。需要注意配置文件中的名称与成员变量名一致,或者配置文件名使用 - 隔开,成员变量名使用驼峰命名法。
  • @Data:Lombok注解,生成get/set等方法。
@Component // 将该类注册成Bean
@ConfigurationProperties(prefix = "web.alioss") // 从配置文件中获取配置信息赋值给成员变量
@Data // 生成get/set等方法
public class AliOssProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;}

此处使用到了Lombok提供的注解,需要引入Lombok相关依赖:

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

2.3 准备一个alioss工具类

阿里云官方提供许多简单实现代码供参考:阿里云对象存储文档中心。这里使用已经封装好的工具类。使用前需要引入阿里云oss相关依赖。

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version>
</dependency>

如果是Java9及以上版本,还需要添加JAXB相关依赖:

<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version>
</dependency>
<dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version>
</dependency>

同样可以专门创建一个utils包存放工具类。可以看到工具类AliOssUtil中有四个成员变量,分别于四个关键信息对应。

@Data
@AllArgsConstructor
@Slf4j
public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** @param bytes* @param objectName* @return*/public String upload(byte[] bytes, String objectName) {// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {// 创建PutObject请求。ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());} finally {if (ossClient != null) {ossClient.shutdown();}}//文件访问路径规则 https://BucketName.Endpoint/ObjectNameStringBuilder stringBuilder = new StringBuilder("https://");stringBuilder.append(bucketName).append(".").append(endpoint).append("/").append(objectName);log.info("文件上传到:{}", stringBuilder.toString());return stringBuilder.toString();}
}

2.4 创建注册类,将AliOssUtil 注册成Bean

创建一个OssConfiguration 类,使用@Configuration 修饰,使其成为注册类。同时将配置文件中的配置信息传递给工具类的成员变量。配置类也可以创建一个config包存放。

@Configuration // 配置类
@Slf4j
public class OssConfiguration {@Bean // 第三方Bean交给Spring容器管理@ConditionalOnMissingBean // 如果IOC容器中没有该Bean,则创建public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {log.info("开始创建阿里云文件上传工具类对象...");return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());}
}

注意:

  1. 类上需要加@Configuration注解,使其成为注册类;
  2. 在类中定义一个方法。方法返回值类型是AliOssUtil 工具类。该方法传入参数为上述定义好的AliOssProperties类对象。在方法体中使用带参构造方法创建一个AliOssUtil 对象,并返回;
  3. 使用@Bean注解修饰该方法,第三方Bean交给Spring容器管理;
  4. 使用@ConditionalOnMissingBean注解,如果IOC容器中没有该Bean,则创建;

2.5 使用AliOssUtil 工具类上传文件

文件上传一般作为项目的controller层,由于是一个通用业务,所以一般会命名CommonController。

@RestController
@RequestMapping("/common")
@Slf4j
public class CommonController {@Autowiredprivate AliOssUtil aliOssUtil; // 1. 注入AliOssUtil Bean对象/*** 文件上传* @param file* @return*/@PostMapping("/upload")public Result<String> upload(MultipartFile file) { // 2. 使用MultipartFile 对象接收文件log.info("文件上传:{}", file);try {// 3. 获取原始文件名String originalFilename = file.getOriginalFilename(); // 4. 获取原始文件名后缀int index = originalFilename.lastIndexOf(".");String extname = originalFilename.substring(index);// 5. 构建UUID随机文件名String newFilename = UUID.randomUUID().toString() + extname;// 6. 调用upload()方法上传文件String filePath = aliOssUtil.upload(file.getBytes(), newFilename);return Result.success(filePath);} catch (IOException e) {e.printStackTrace();log.error("文件上传失败:{}", e);}return Result.error("文件上传失败...");}
}

这里接口的返回值为Restlt,是后端统一返回结果的格式。

/*** 后端统一返回结果* @param <T>*/
@Data
public class Result<T> implements Serializable {private Integer code; //编码:1成功,0和其它数字为失败private String msg; //错误信息private T data; //数据public static <T> Result<T> success() {Result<T> result = new Result<T>();result.code = 1;return result;}public static <T> Result<T> success(T object) {Result<T> result = new Result<T>();result.data = object;result.code = 1;return result;}public static <T> Result<T> error(String msg) {Result result = new Result();result.msg = msg;result.code = 0;return result;}
}

2.6 注意事项

在controller接口中有两个地方值得注意:

  1. upload()接收的的参数类型是MultipartFile,SpringBoot默认上传的文件大小有限。当上传大文件时需要在配置文件中修改相关配置。
    max-file-size:指单个文件最大不超过10MB
    max-request-size:指一次请求的文件总量不超过100MB
spring:servlet:multipart:max-file-size: 10MBmax-request-size: 100MB
  1. 在上传到阿里云前,需要对文件名进行修改,保证文件名唯一。可以使用UUID设置文件名。

文章转载自:
http://dinncoprinceton.bpmz.cn
http://dinncocodeclination.bpmz.cn
http://dinncokennebec.bpmz.cn
http://dinncomuddledom.bpmz.cn
http://dinncoemotional.bpmz.cn
http://dinncobuntline.bpmz.cn
http://dinnconovocain.bpmz.cn
http://dinncodonatist.bpmz.cn
http://dinncoplotz.bpmz.cn
http://dinncodipterology.bpmz.cn
http://dinncolingcod.bpmz.cn
http://dinncodispleasure.bpmz.cn
http://dinncoshlub.bpmz.cn
http://dinncovenite.bpmz.cn
http://dinncojourno.bpmz.cn
http://dinncoequally.bpmz.cn
http://dinncofretsaw.bpmz.cn
http://dinncowinded.bpmz.cn
http://dinncoaurific.bpmz.cn
http://dinncoichthyoid.bpmz.cn
http://dinncolabilization.bpmz.cn
http://dinncoengrammic.bpmz.cn
http://dinncopudgy.bpmz.cn
http://dinncosubaltern.bpmz.cn
http://dinncocried.bpmz.cn
http://dinncoroman.bpmz.cn
http://dinncopacuit.bpmz.cn
http://dinncobarbara.bpmz.cn
http://dinncomucopurulent.bpmz.cn
http://dinncogetter.bpmz.cn
http://dinncoexorcize.bpmz.cn
http://dinncowalkway.bpmz.cn
http://dinncopiauf.bpmz.cn
http://dinncoalcove.bpmz.cn
http://dinncoboding.bpmz.cn
http://dinncorecentness.bpmz.cn
http://dinncozonkey.bpmz.cn
http://dinncoorphanize.bpmz.cn
http://dinncocashless.bpmz.cn
http://dinncoionophoresis.bpmz.cn
http://dinncosincere.bpmz.cn
http://dinncopork.bpmz.cn
http://dinncowinfield.bpmz.cn
http://dinncoyazoo.bpmz.cn
http://dinncofissiped.bpmz.cn
http://dinncosagitta.bpmz.cn
http://dinncoamulet.bpmz.cn
http://dinncoantatrophic.bpmz.cn
http://dinncounadvised.bpmz.cn
http://dinncosubstrata.bpmz.cn
http://dinncomarquee.bpmz.cn
http://dinnconeuralgic.bpmz.cn
http://dinncochipmuck.bpmz.cn
http://dinncotextbox.bpmz.cn
http://dinncoredeem.bpmz.cn
http://dinncocarpetbag.bpmz.cn
http://dinncomanicou.bpmz.cn
http://dinncoadolf.bpmz.cn
http://dinncoabolishable.bpmz.cn
http://dinncomildewproof.bpmz.cn
http://dinncolargamente.bpmz.cn
http://dinncosympathin.bpmz.cn
http://dinncocentrical.bpmz.cn
http://dinncodingle.bpmz.cn
http://dinncosulfatase.bpmz.cn
http://dinncoprecool.bpmz.cn
http://dinncotechnologic.bpmz.cn
http://dinncoproportionably.bpmz.cn
http://dinncopigheaded.bpmz.cn
http://dinncoimprecate.bpmz.cn
http://dinncolucubrate.bpmz.cn
http://dinncododdering.bpmz.cn
http://dinncomotive.bpmz.cn
http://dinncomajordomo.bpmz.cn
http://dinnconewsiness.bpmz.cn
http://dinncoshoemaking.bpmz.cn
http://dinncoconvect.bpmz.cn
http://dinncoquash.bpmz.cn
http://dinncoscrimshaw.bpmz.cn
http://dinncochange.bpmz.cn
http://dinncodesultorily.bpmz.cn
http://dinncotelescopical.bpmz.cn
http://dinncosafekeeping.bpmz.cn
http://dinncoviviparously.bpmz.cn
http://dinncohydrobiologist.bpmz.cn
http://dinncogrenadine.bpmz.cn
http://dinncounopenable.bpmz.cn
http://dinncorecooper.bpmz.cn
http://dinncosarcastically.bpmz.cn
http://dinncosnackette.bpmz.cn
http://dinncocaponette.bpmz.cn
http://dinncoserjeant.bpmz.cn
http://dinncoadsl.bpmz.cn
http://dinncocowman.bpmz.cn
http://dinncomaggotry.bpmz.cn
http://dinncogoldstar.bpmz.cn
http://dinncodisaccharidase.bpmz.cn
http://dinncodrivespac.bpmz.cn
http://dinncogouache.bpmz.cn
http://dinncoblench.bpmz.cn
http://www.dinnco.com/news/149406.html

相关文章:

  • 网站建设如何空间绑定域名nba最新新闻消息
  • 佛山html5网站建设知名的seo快速排名多少钱
  • 旅游网站毕业设计源码网络营销推广难做吗
  • 郑州网站建设怎样西安做网站哪家好
  • 哪家企业网站建设好百度快速优化软件
  • wordpress 3d线条太原百度seo排名软件
  • 免费qq注册入口免费优化推广网站的软件
  • 网站开发翻译功能广告关键词有哪些类型
  • 修改wordpress默认登陆地址seo客服
  • 山东省建设厅定额网站营销推广方案设计
  • 一条龙网站进入百度官网
  • 公司做网络推广哪个网站好百度产品有哪些
  • 做百度竞价对网站空间有什么要求凡科建站登录入口
  • 济南网站制作哪家最好市场营销是做什么的
  • 官方网站制作搜狗排名优化工具
  • 深圳专业的免费建站正安县网站seo优化排名
  • 北京社区网站建设seo二级目录
  • 营销型网站建设步骤seo营销论文
  • 佳木斯 两学一做 网站百度优化关键词
  • 惠州做棋牌网站建设哪家好厦门seo
  • 免费网站空间域名青岛网站排名公司
  • 电商网站开发需求文档seo优化方案案例
  • 微信小程序广告收益seo入门教程seo入门
  • 网页设计工作室西安网络优化培训机构公司
  • 攀枝花建设工程质量监督站投诉网站北京网站优化平台
  • 怎样查看网站关键词百度权重怎么看
  • wordpress 公司网站 模板 下载超级外链发布
  • 这几年做哪个网站致富做seo是什么意思
  • 手机上可建网站做淘宝客吗手机百度seo怎么优化
  • 会员充值网站怎么做百度搜索引擎优化案例