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

网站建设的四个步骤如何建立网站会员系统

网站建设的四个步骤,如何建立网站会员系统,手机网站建站,做苗木网站一、前言 有时在项目中需要使用一些存储系统来存储文件&#xff0c;那么当项目要接入obs作为存储系统时&#xff0c;就会利用obs来进行文件的上传下载&#xff0c;具体实现如下。 二、如何通过obs实现文件的上传下载&#xff1f; 1.添加相关的obs的maven依赖。 <dependency…

一、前言
有时在项目中需要使用一些存储系统来存储文件,那么当项目要接入obs作为存储系统时,就会利用obs来进行文件的上传下载,具体实现如下。

二、如何通过obs实现文件的上传下载?
1.添加相关的obs的maven依赖。

 <dependency><groupId>com.huaweicloud</groupId><artifactId>esdk-obs-java-bundle</artifactId><version>3.23.9</version></dependency>

2.配置obs客户端连接。

@Configuration  
@Data
public class OBSConfig {  @Value("${obs.accessKey}")  private String accessKey;  @Value("${obs.secretKey}")  private String secretKey;  @Value("${obs.endpoint}")  private String endpoint;  @Value("${obs.bucket}")private String bucketName;}  

3.在YAML添加obs配置。

obs:endpoint: http://xxxxxx:xxxxaccessKey: xxxxxxxxsecretKey: xxxxxxxxxxxbucket: my-bucket

4.定义obs工具类,代码如下:

import com.obs.services.ObsClient;
import com.obs.services.exception.ObsException;
import com.obs.services.model.CompleteMultipartUploadRequest;
import com.obs.services.model.CompleteMultipartUploadResult;
import com.obs.services.model.ObjectMetadata;
import com.obs.services.model.PutObjectRequest;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.io.File;
import java.io.InputStream;
import java.util.UUID;@Component
public class ObsUtil {@Resourceprivate OBSConfig  oBSConfig;private ObsClient obsClient;public ObsClient getClient() {if (obsClient == null) {obsClient = new ObsClient(oBSConfig.getAccessKey, oBSConfig.getSecretKey, oBSConfig.getEndPoint);}return obsClient;}/*** 上传文件到OBS** @param file 待上传的文件* @return 返回文件的访问路径*/public String uploadFile(File file) {try (ObsClient obsClient = getObsClient()) {// 生成唯一的文件名String fileName = UUID.randomUUID().toString() + "-" + file.getName();PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, file);// 设置元数据(可选)ObjectMetadata metadata = new ObjectMetadata();metadata.setContentType("application/octet-stream");putObjectRequest.setMetadata(metadata);obsClient.putObject(putObjectRequest);return endpoint + "/" + bucketName + "/" + fileName;} catch (ObsException e) {throw new RuntimeException("上传文件失败:" + e.getMessage(), e);}}/*** 上传文件流到OBS** @param inputStream 文件输入流* @param fileName    文件名* @return 返回文件的访问路径*/public String uploadInputStream(InputStream inputStream, String fileName) {try (ObsClient obsClient = getObsClient()) {// 生成唯一的文件名String objectKey = UUID.randomUUID().toString() + "-" + fileName;PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectKey, inputStream);// 设置元数据(可选)ObjectMetadata metadata = new ObjectMetadata();metadata.setContentType("application/octet-stream");putObjectRequest.setMetadata(metadata);obsClient.putObject(putObjectRequest);return endpoint + "/" + bucketName + "/" + objectKey;} catch (ObsException e) {throw new RuntimeException("上传文件流失败:" + e.getMessage(), e);}}/*** 下载文件** @param objectKey 对象键(文件名)* @param savePath  保存路径*/public Inputstream downloadFile(String objectKey, String savePath) {try (ObsClient obsClient = getObsClient()) {GetObjectRequest request = new GetObjectRequest();request.setBucketName(StringUtils.isEmpty(bucket) ? oBSConfig.getBucket : bucket);String objectName = (originFilePath == null ? "" : originFilePath) + fileName;objectName = objectName.charAt(0) == '/' ? objectName.substring(1) : objectName;request.setObjectKey(objectName);if (offset != null) {request.setRangeStart(offset);if (length != null) {request.setRangeEnd(offset + length);}}ObsObject object = client.getObject(request);return object.getObjectContent();} catch (ObsException e) {throw new RuntimeException("下载文件失败:" + e.getMessage(), e);}}/*** 删除文件** @param objectKey 对象键(文件名)*/public void deleteFile(String objectKey) {try (ObsClient obsClient = getObsClient()) {obsClient.deleteObject(bucketName, objectKey);} catch (ObsException e) {throw new RuntimeException("删除文件失败:" + e.getMessage(), e);}}
}

5.文件上传接口实现示例:

@RestController  
@RequestMapping("/obs")  
public class OBSUploadController {  @Autowired  private ObsUtil obsUtil ;  @PostMapping("/upload")  public ResponseEntity<String> uploadFile(  @RequestParam("file") MultipartFile file) {  try {  obsUtil.uploadFile(file.getInputStream(),"xxxx");  return ResponseEntity.ok("OBS路径: " + objectKey);  } catch (ObsException e) {  return ResponseEntity.status(e.getResponseCode())  .body("OBS服务异常: " + e.getErrorMessage());  } catch (Exception e) {  return ResponseEntity.internalServerError()  .body("上传失败: " + e.getMessage());  }  }  
}  

有兴趣的可以试一试。


文章转载自:

http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://00000000.tbLbr.cn
http://www.dtcms.com/wzjs/603901.html

相关文章:

  • 广州网站建设团队刚刚做的网站怎么排名
  • 学外贸英语的网站重庆承越网站制作公司
  • 建设网站的目标客户群如何建设网站并与数据库相连
  • 深圳做网站google推广便宜的海外服务器
  • 甘肃省建设稽查执法局网站徐汇网站建设
  • 凡科主要是做什么的优化游戏的软件
  • 山东一建建设有限公司官方网站建筑网站免费
  • 贵州旅游网站建设策划书vi手册
  • 网站域名个人备案查询网站建设怎么链接表格
  • 广东品牌网站设计推广外包
  • 企业网站的优化医疗网站建设市场
  • 江苏徐州网站建设电商店铺
  • 网站建设推广新业务个人网站建设基本教程
  • 两学一做 知识竞赛网站selz网页设计公司
  • 做珠宝网站公司永久短网址生成
  • 企业网站后台管理系统模板江汉网站建设
  • 一个做炉石视频的网站分销系统开发多少钱
  • 开个网站做代理医院网站建设方案招标文件
  • 网站开发与规划就业前景网站建设+用ftp上传文件
  • 扫码员在哪个网站可以做泰安小程序开发制作
  • 网站开发简历 自我评价网站里图片做超链接
  • 珠海公司网站制作网站开发框架具体是什么
  • 朔州市住房与城乡建设厅网站百度推广入口登录
  • 惠州建设局官方网站个人网站做博客还是做论坛
  • 自助众筹网站建设我的主页
  • 沈阳公司建设网站四川省住房和城乡建设厅门户网站
  • 做装潢网站中山网站建设工作
  • 做cps需要什么样的网站北京app开发网站建设
  • 什么网站需要服务器美丽乡村建设规划文本网站
  • 专业网站建设信息做公司网站协议书模板下载