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

成都企业网站备案流程广州婚恋网站排名

成都企业网站备案流程,广州婚恋网站排名,html5深圳网站开发,网站微信付款调用一、前言 有时在项目中需要使用一些存储系统来存储文件&#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://www.yidumall.com/news/53126.html

相关文章:

  • 网站服务器迁移百度一下官网
  • 平安好车主app下载官方网站下载广东企业网站seo哪里好
  • 网站制作 p品牌整合营销案例
  • 前端毕业设计题目可以做哪些seo搜索引擎优化排名报价
  • 返利系统网站开发企业网站seo推广
  • 上海哪学网站建设优化培训机构网站制作
  • 如何让网站免费网页设计主题推荐
  • 购物网站的建立win7优化大师官方免费下载
  • 建设厅三类人员网站google play 应用商店
  • dede怎么做双语网站公司域名注册查询
  • 成都房地产经纪协会官网谷歌seo推广公司
  • wap网站案例seo的优化步骤
  • 做网站需要什么部门批准专业做网站公司
  • 外国人做中国数学视频网站seo引擎优化是什么
  • 深圳外贸有限公司seo推广网址
  • 重庆哪里可以做网站百度关键词推广价格
  • 网上注册公司名字审核企业网站优化技巧
  • 同ip网站过多是空间的原因还是域名的原因谷歌推广真有效果吗
  • 淘宝做详情页的网站seo研究中心vip教程
  • 公司建站湘潭seo优化
  • 濮阳市政府门户网站做外贸网站哪家公司好
  • 服务器网站管理软件官方进一步优化
  • 平台做网站点击郑州网站关键词优化外包
  • 赤壁市建设局网站最有效的恶意点击软件
  • 用云主机做网站互联网营销师证
  • 怎么做二十八页美食网站网络广告人社区
  • 公司网站设计网络公司网站建设需求模板
  • 专业网站开发设计医院营销策略的具体方法
  • 网站没备案怎么做加速百度下载免费安装最新版
  • 四级a做爰片免费网站深圳今天重大事件新闻