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

做网站需要的带宽上行还是下行营销型网站制作成都

做网站需要的带宽上行还是下行,营销型网站制作成都,怎么给自己的网站做域名,高端的网站建设一、OSS介绍 在Web项目中#xff0c;一些常见的功能#xff0c;比如展示图片#xff0c;修改头像等#xff0c;都需要进行图片的上传操作#xff0c;但是如果是存储在Web服务器中#xff0c;在读取图片的时候会占用比较多的资源#xff0c;影响服务器的性能。 常…一、OSS介绍         在Web项目中一些常见的功能比如展示图片修改头像等都需要进行图片的上传操作但是如果是存储在Web服务器中在读取图片的时候会占用比较多的资源影响服务器的性能。 常见的方式是使用OSSObject Storage Service存储图片或视频。 用户会先将图片上传至服务器服务器这里担任的是中转的角色前端界面发送请求到后端后端需要保存数据例如图片的访问链接返回给前端后续需要浏览图片的时候前端通过访问后端所返回的响应体中的链接到OSS中进行访问。 这种方式可以有效的节省服务器所需的资源减轻带宽压力。 这里我们是使用七牛云OSS进行服务器直传数据流的方式的展示有一定的免费存储空间 详情可以参考操作文档Java SDK_SDK 下载_对象存储 - 七牛开发者中心 (qiniu.com) 二、演示案例 2.1 引入Maven依赖 dependencygroupIdcom.qiniu/groupIdartifactIdqiniu-java-sdk/artifactIdversion[7.13.0, 7.13.99]/version /dependency 2.2 默认提供的代码 //构造一个带指定 Region 对象的配置类Configuration cfg new Configuration(Region.region0());cfg.resumableUploadAPIVersion Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本//...其他参数参考类注释UploadManager uploadManager new UploadManager(cfg);//...生成上传凭证然后准备上传String accessKey your access key;String secretKey your secret key;String bucket your bucket name;//默认不指定key的情况下以文件内容的hash值作为文件名String key null;try {byte[] uploadBytes hello qiniu cloud.getBytes(utf-8);ByteArrayInputStream byteInputStreamnew ByteArrayInputStream(uploadBytes);Auth auth Auth.create(accessKey, secretKey);String upToken auth.uploadToken(bucket);try {Response response uploadManager.put(byteInputStream,key,upToken,null, null);//解析上传成功的结果DefaultPutRet putRet new Gson().fromJson(response.bodyString(), DefaultPutRet.class);System.out.println(putRet.key);System.out.println(putRet.hash);} catch (QiniuException ex) {ex.printStackTrace();if (ex.response ! null) {System.err.println(ex.response);try {String body ex.response.toString();System.err.println(body);} catch (Exception ignored) {}}}} catch (UnsupportedEncodingException ex) {//ignore} 这里我们可以先对代码进行简单的修改使其实现我们的功能之后我们再一步步的优化 2.2.1 修改Region配置类 通过观察我们需要修改Region对象的配置类 文档 这里我们设置为autoRegion它会自动帮我们绑定我们在七牛云上创建的OSS仓库的地址。 2.2.2 AK,SK,bucket name的查看和修改  显而易见还需要修改密钥即AKSK和 bucket name。 AKSK在密钥管理处查看 密钥管理界面如下  修改的话这边是利用 ConfigurationProperties从配置文件中获取需要注意的是使用改注解的时候还需要给这些属性配置对应的set方法才行 当然你也可以使用Value从配置文件中获取属性。 yml配置文件如下 2.2.3 修改存储到OSS的文件名存储的文件 到此其实就可以实现一个简单的文件上传了 2.2.4 代码实现 package com.fox;import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import org.junit.jupiter.api.Test; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.stereotype.Component;import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException;SpringBootTest ConfigurationProperties(prefix oss) public class OSSTest {private String accessKey;private String secretKey;private String bucket;public void setAccessKey(String accessKey) {this.accessKey accessKey;}public void setSecretKey(String secretKey) {this.secretKey secretKey;}public void setBucket(String bucket) {this.bucket bucket;}Testpublic void testOss() {//构造一个带指定 Region 对象的配置类Configuration cfg new Configuration(Region.autoRegion());cfg.resumableUploadAPIVersion Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本//...其他参数参考类注释UploadManager uploadManager new UploadManager(cfg);//...生成上传凭证然后准备上传//默认不指定key的情况下以文件内容的hash值作为文件名String key 2022/fox.jpg;try { // byte[] uploadBytes hello qiniu cloud.getBytes(utf-8); // ByteArrayInputStream byteInputStreamnew ByteArrayInputStream(uploadBytes);InputStream inputStream new FileInputStream(C:\\Users\\86136\\Desktop\\Snipaste_2024-02-03_17-30-29.png);Auth auth Auth.create(accessKey, secretKey);String upToken auth.uploadToken(bucket);try {Response response uploadManager.put(inputStream,key,upToken,null, null);//解析上传成功的结果DefaultPutRet putRet new Gson().fromJson(response.bodyString(), DefaultPutRet.class);System.out.println(putRet.key);System.out.println(putRet.hash);} catch (QiniuException ex) {ex.printStackTrace();if (ex.response ! null) {System.err.println(ex.response);try {String body ex.response.toString();System.err.println(body);} catch (Exception ignored) {}}}} catch (Exception ex) {//ignore}} }三、实际项目中的OSS案例 其实跟上述过程差不多只是将一些写死的数据演变为可变的并且返回响应给前端工程即可 3.1 改进1利用Lombok注解代替set方法 3.2 改进2利用工具类动态生成文件名称 接受图片方法如下,该方法会返回给前端访问该图片的链接ResponseResult为我自己定义的统一格式响应体。 Overridepublic ResponseResult uploadImg(MultipartFile img) {//获取原始文件名String originalFilename img.getOriginalFilename();//对原始文件名进行判断if (!originalFilename.endsWith(.png) !originalFilename.endsWith(.jpg)) {throw new SystemException(AppHttpCodeEnum.FILE_TYPE_ERROR);}//如果判断通过那么就上传文件到OSSString filePath PathUtils.generateFilePath(originalFilename);String url uploadOss(img,filePath);return ResponseResult.okResult(url);} PathUtils工具类如下用于动态生成文件名 package com.fox.utils;import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID;public class PathUtils {public static String generateFilePath(String fileName){//根据日期生成路径 2022/1/15/SimpleDateFormat sdf new SimpleDateFormat(yyyy/MM/dd/);String datePath sdf.format(new Date());//uuid作为文件名String uuid UUID.randomUUID().toString().replaceAll(-, );//后缀和文件后缀一致int index fileName.lastIndexOf(.);// test.jpg - .jpgString fileType fileName.substring(index);return new StringBuilder().append(datePath).append(uuid).append(fileType).toString();} }以下为uploadOss方法key即为文件名我们需要返回给前端的url就是外链访问路径加上文件名即可 bucket绑定的域名外链访问域名获取如下  3.3 总结 代码实现 package com.fox.service.impl;import com.fox.domain.ResponseResult; import com.fox.enums.AppHttpCodeEnum; import com.fox.exception.SystemException; import com.fox.service.UploadService; import com.fox.utils.PathUtils; import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;import java.io.InputStream;Service Data ConfigurationProperties(prefix oss) public class OssUploadServiceImpl implements UploadService {private String accessKey;private String secretKey;private String bucket;Overridepublic ResponseResult uploadImg(MultipartFile img) {//获取原始文件名String originalFilename img.getOriginalFilename();//对原始文件名进行判断if (!originalFilename.endsWith(.png) !originalFilename.endsWith(.jpg)) {throw new SystemException(AppHttpCodeEnum.FILE_TYPE_ERROR);}//如果判断通过那么就上传文件到OSSString filePath PathUtils.generateFilePath(originalFilename);String url uploadOss(img,filePath);return ResponseResult.okResult(url);}private String uploadOss(MultipartFile imgFile, String filePath) {//构造一个带指定 Region 对象的配置类Configuration cfg new Configuration(Region.autoRegion());cfg.resumableUploadAPIVersion Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本//...其他参数参考类注释UploadManager uploadManager new UploadManager(cfg);//...生成上传凭证然后准备上传//默认不指定key的情况下以文件内容的hash值作为文件名String key filePath;try { // byte[] uploadBytes hello qiniu cloud.getBytes(utf-8); // ByteArrayInputStream byteInputStreamnew ByteArrayInputStream(uploadBytes);InputStream inputStream imgFile.getInputStream();Auth auth Auth.create(accessKey, secretKey);String upToken auth.uploadToken(bucket);try {Response response uploadManager.put(inputStream,key,upToken,null, null);//解析上传成功的结果DefaultPutRet putRet new Gson().fromJson(response.bodyString(), DefaultPutRet.class);System.out.println(putRet.key);System.out.println(putRet.hash);return 图片外链除去文件名的url地址key;} catch (QiniuException ex) {ex.printStackTrace();if (ex.response ! null) {System.err.println(ex.response);try {String body ex.response.toString();System.err.println(body);} catch (Exception ignored) {}}}} catch (Exception ex) {//ignore}return 2;}}
http://www.pierceye.com/news/24673/

相关文章:

  • 辽宁建设工程质量监督站网站seoul national university
  • 红光网站建设代运营一家店铺多少钱
  • 怎么自己做网站qq常州做网站的公司有哪些
  • 网站域名hkasp网站建设外文参考文献
  • 烟台福山建设规划局网站小企业做网站有没有用
  • 德清县建设局网站wordpress手机不显示图片
  • 网站单页面策划app推广渠道商
  • 新网站优化江西门户网站建设
  • 网站布局结构有哪些三河市最新消息
  • 盐城大丰网站建设找哪家好外贸网站模板外贸网站建设
  • 上海帝程网站建设公司成立公司股权怎么分配
  • 哪些网站专做自媒体的在重庆 那里可以做诚信网站认证
  • 深圳 网站定制通州重庆网站建设
  • 泉州网站制作方案衣服商业网站建设策划书
  • 免费给人做网站的卖水果网站建设的策划书
  • 编写网站 语言shein跨境电商平台
  • 动静分离网站架构网页表单制作
  • 移动网站开发的视频下载无锡专业网站制作的公司
  • 招聘美容师在哪个网站做招聘最有效郑州app
  • 网站收录很好没排名做论坛网站4g空间够不够用
  • 免费ppt网站 不要收费的wordpress分页效果
  • 沈阳网站建设招标公司什么样的网站好优化
  • 扁平式风格网站制作企业宣传册用什么软件
  • 企业内部网站建设费用wordpress 获取图片地址
  • 网站建设项目总结郴州市简介
  • 软件下载网站如何建设单页手机网站源码
  • wordpress无域名建站甘肃省建设厅网站质监局
  • 南阳网站建设价格wordpress有什么选什么用
  • 一起合伙做项目的网站网站优化要怎么做才会做到最佳
  • 怎么看待网站开发自然资源网站建设方案